Web Inspector: Create Separate Model and View Objects for RemoteObjects / ObjectPrevi...
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2
3         Web Inspector: Create Separate Model and View Objects for RemoteObjects / ObjectPreview / PropertyDescriptor
4         https://bugs.webkit.org/show_bug.cgi?id=141696
5
6         Reviewed by Timothy Hatcher.
7
8         * UserInterface/Main.html:
9         Add new files.
10
11         * UserInterface/Models/CollectionEntry.js: Added.
12         (WebInspector.CollectionEntry):
13         (WebInspector.CollectionEntry.fromPayload):
14         (WebInspector.CollectionEntry.prototype.get key):
15         (WebInspector.CollectionEntry.prototype.get value):
16         * UserInterface/Models/CollectionEntryPreview.js: Added.
17         (WebInspector.CollectionEntryPreview):
18         (WebInspector.CollectionEntryPreview.fromPayload):
19         (WebInspector.CollectionEntryPreview.prototype.get keyPreview):
20         (WebInspector.CollectionEntryPreview.prototype.get valuePreview):
21         * UserInterface/Models/ObjectPreview.js: Added.
22         (WebInspector.ObjectPreview):
23         (WebInspector.ObjectPreview.fromPayload):
24         (WebInspector.ObjectPreview.prototype.get type):
25         (WebInspector.ObjectPreview.prototype.get subtype):
26         (WebInspector.ObjectPreview.prototype.get description):
27         (WebInspector.ObjectPreview.prototype.get lossless):
28         (WebInspector.ObjectPreview.prototype.get overflow):
29         (WebInspector.ObjectPreview.prototype.get properties):
30         (WebInspector.ObjectPreview.prototype.get entries):
31         * UserInterface/Models/PropertyPreview.js: Added.
32         (WebInspector.PropertyPreview):
33         (WebInspector.PropertyPreview.fromPayload):
34         (WebInspector.PropertyPreview.prototype.get name):
35         (WebInspector.PropertyPreview.prototype.get type):
36         (WebInspector.PropertyPreview.prototype.get subtype):
37         (WebInspector.PropertyPreview.prototype.get value):
38         (WebInspector.PropertyPreview.prototype.get valuePreview):
39         * UserInterface/Models/PropertyDescriptor.js: Added.
40         (WebInspector.PropertyDescriptor.fromPayload):
41         (WebInspector.PropertyDescriptor.prototype.get name):
42         (WebInspector.PropertyDescriptor.prototype.get value):
43         (WebInspector.PropertyDescriptor.prototype.get writable):
44         (WebInspector.PropertyDescriptor.prototype.get configurable):
45         (WebInspector.PropertyDescriptor.prototype.get enumerable):
46         (WebInspector.PropertyDescriptor.prototype.get isOwnProperty):
47         (WebInspector.PropertyDescriptor.prototype.get wasThrown):
48         (WebInspector.PropertyDescriptor.prototype.get isInternalProperty):
49         (WebInspector.PropertyDescriptor.prototype.hasValue):
50         (WebInspector.PropertyDescriptor.prototype.hasGetter):
51         (WebInspector.PropertyDescriptor.prototype.hasSetter):
52         New Model objects for different Protocol types.
53         The only customizations right now are compatibility modifications
54         and PropertyDescriptor's "hasValue", "hasGetter", and "hasSetter"
55         functions to return reliable checks based on the descriptors contents.
56
57         * UserInterface/Protocol/RemoteObject.js:
58         (WebInspector.RemoteObject):
59         (WebInspector.RemoteObject.fromPayload):
60         (WebInspector.RemoteObject.resolveNode):
61         (WebInspector.RemoteObject.prototype.get value):
62         (WebInspector.RemoteObject.prototype._isSymbol):
63         (WebInspector.RemoteObject.prototype.isCollectionType):
64         (WebInspector.RemoteObject.prototype.isWeakCollection):
65         (WebInspector.RemoteObject.prototype.getCollectionEntries):
66         (WebInspector.RemoteObject.prototype.arrayLength):
67         Clean up the existing code to enforce more checks and use our
68         style of member variables and public accessors.
69
70         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptors):
71         (WebInspector.RemoteObject.prototype.getOwnAndGetterPropertyDescriptors):
72         (WebInspector.RemoteObject.prototype.getAllPropertyDescriptors):
73         (WebInspector.RemoteObject.prototype.callback):
74         Provide a new way of getting properties that returns Model objects
75         instead of raw protocol types.
76
77         * UserInterface/Views/ConsoleMessageImpl.js:
78         (WebInspector.ConsoleMessageImpl.prototype._format):
79         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
80         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement):
81         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
82         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
83         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
84         Always include a preview when possible. Now, when forced to be an object,
85         force expansion even if the preview is lossless.
86
87         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
88         Use an ObjectTreeView instead of ObjectPropertiesSection.
89
90         (WebInspector.ConsoleMessageImpl.prototype._appendPreview): Deleted.
91         (WebInspector.ConsoleMessageImpl.prototype._appendEntryPreviews): Deleted.
92         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews): Deleted.
93         (WebInspector.ConsoleMessageImpl.prototype._appendValuePreview): Deleted.
94         This code is moved into ObjectPreviewView.
95
96
97         * UserInterface/Views/ObjectPropertiesSection.js:
98         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand.callback):
99         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand):
100         These types are now converted to Model types in Model objects, so do not do it here.
101
102         * UserInterface/Views/ObjectPreviewView.css: Added.
103         (.object-preview):
104         (.object-preview.lossless):
105         (.object-preview .name):
106         * UserInterface/Views/ObjectPreviewView.js: Added.
107         (WebInspector.ObjectPreviewView):
108         (WebInspector.ObjectPreviewView.prototype.get preview):
109         (WebInspector.ObjectPreviewView.prototype.get element):
110         (WebInspector.ObjectPreviewView.prototype.get mode):
111         (WebInspector.ObjectPreviewView.prototype.get lossless):
112         (WebInspector.ObjectPreviewView.prototype._numberOfPropertiesToShowInMode):
113         (WebInspector.ObjectPreviewView.prototype._appendPreview):
114         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
115         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
116         (WebInspector.ObjectPreviewView.prototype._appendValuePreview):
117         (WebInspector.ObjectPreviewView.prototype._formattedObjectElementForPreview):
118         An ObjectPreviewView can create a full/brief view given a ObjectPreview.
119         The view will contain formatted values everywhere possible.
120
121         * UserInterface/Views/ObjectTreePropertyTreeElement.js: Added.
122         (WebInspector.ObjectTreePropertyTreeElement):
123         (WebInspector.ObjectTreePropertyTreeElement.prototype.get property):
124         (WebInspector.ObjectTreePropertyTreeElement.prototype.onpopulate):
125         (WebInspector.ObjectTreePropertyTreeElement.prototype.onattach):
126         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitle):
127         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle):
128         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAPIStyle):
129         (WebInspector.ObjectTreePropertyTreeElement.prototype._descriptionString):
130         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
131         (WebInspector.ObjectTreePropertyTreeElement.prototype.mode):
132         (WebInspector.ObjectTreePropertyTreeElement.prototype):
133         * UserInterface/Views/ObjectTreeView.js: Added.
134         (WebInspector.ObjectTreeView):
135         (WebInspector.ObjectTreeView.classNameForObject):
136         (WebInspector.ObjectTreeView.ComparePropertyDescriptors):
137         (WebInspector.ObjectTreeView.prototype.get object):
138         (WebInspector.ObjectTreeView.prototype.get element):
139         (WebInspector.ObjectTreeView.prototype.get expanded):
140         (WebInspector.ObjectTreeView.prototype.expand):
141         (WebInspector.ObjectTreeView.prototype.collapse):
142         (WebInspector.ObjectTreeView.prototype.update):
143         (WebInspector.ObjectTreeView.prototype._updateProperties):
144         (WebInspector.ObjectTreeView.prototype._handlePreviewOrTitleElementClick):
145         Re-implementation of ObjectPropertiesSection for our Model objects
146         without "Section" semantics / dependencies. An ObjectTree will creates
147         an expandable tree for a RemoteObject. The top level clickable item
148         will be an ObjectPreview if possible, otherwise just a title element.
149
150         * UserInterface/Views/ObjectTreeView.css: Added.
151         (.object-tree):
152         (.object-tree > .title):
153         (.object-tree > :matches(.title, .object-preview)::before):
154         (.object-tree.expanded > :matches(.title, .object-preview)::before):
155         (.object-tree.lossless-preview > :matches(.title, .object-preview)::before):
156         (.object-tree-outline):
157         (.object-tree.expanded > .object-tree-outline):
158         (.object-tree-outline li):
159         (.object-tree-outline li.parent):
160         (.object-tree-outline li.parent::before):
161         (.object-tree-outline li.parent.expanded::before):
162         (.object-tree-outline ol):
163         (.object-tree-outline ol.expanded):
164         (.object-tree-outline li .empty-message):
165         (.object-tree-property .name):
166         (.object-tree-property .name.not-enumerable):
167         (.object-tree-property .value.error):
168         (.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap):
169         (.formatted-number):
170         (.formatted-string, .formatted-regexp):
171         (.formatted-string):
172         (.formatted-regexp):
173         (.formatted-symbol):
174         (.formatted-null, .formatted-undefined):
175         (.console-group-messages .object-tree:not(.lossless-preview)):
176         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
177         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)::before):
178         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree):
179         (.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):
180         All styles for ObjectTree / ObjectPreview. Independent from
181         other styles in the inspector. Most of this is a copy of
182         the styles applied to ObjectPropertiesSection, renamed.
183
184
185         * UserInterface/Views/ObjectTreeCollectionTreeElement.js: Added.
186         (WebInspector.ObjectTreeCollectionTreeElement):
187         (WebInspector.ObjectTreeCollectionTreeElement.propertyDescriptorForEntry):
188         (WebInspector.ObjectTreeCollectionTreeElement.prototype.get remoteObject):
189         (WebInspector.ObjectTreeCollectionTreeElement.prototype.onexpand.callback):
190         (WebInspector.ObjectTreeCollectionTreeElement.prototype.onexpand):
191         (WebInspector.ObjectTreeCollectionTreeElement.prototype.oncollapse):
192         (WebInspector.ObjectTreeCollectionTreeElement.prototype.ondetach):
193         (WebInspector.ObjectTreeCollectionTreeElement.prototype._trackWeakEntries):
194         (WebInspector.ObjectTreeCollectionTreeElement.prototype._untrackWeakEntries):
195         (WebInspector.ObjectTreeCollectionEntryTreeElement):
196         (WebInspector.ObjectTreeCollectionEntryTreeElement.prototype.onpopulate):
197         (WebInspector.ObjectTreeCollectionEntryTreeElement.prototype.onattach):
198         (WebInspector.ObjectTreeEmptyCollectionTreeElement):
199         Essentially a copy of ObjectPropertiesSection Collection handling using
200         the ObjectTree class names.
201
202         * UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
203         Fix prototype typo.
204
205 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
206
207         Web Inspector: DOMTree / Node Details Sidebar do not update as <input> content changes
208         https://bugs.webkit.org/show_bug.cgi?id=141790
209
210         Reviewed by Timothy Hatcher.
211
212         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
213         (WebInspector.DOMNodeDetailsSidebarPanel):
214         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._characterDataModified):
215         Update Node "Value" details if character data changes.
216
217         * UserInterface/Views/DOMTreeUpdater.js:
218         (WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
219         Update the title of the parent. If the parent had a single text node child
220         and now doesn't, it will need to update its display.
221
222 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
223
224         Web Inspector: Disable DOM Tree Editing / Styles Editing of Shadow DOM Nodes
225         https://bugs.webkit.org/show_bug.cgi?id=141793
226
227         Reviewed by Timothy Hatcher.
228
229         Currently the backend disallows editing of Shadow DOM nodes,
230         so the frontend should not provide options that do not work.
231         Long term we should allow editing Shadow DOM nodes.
232
233         * UserInterface/Models/CSSStyleDeclaration.js:
234         (WebInspector.CSSStyleDeclaration.prototype.get editable):
235         Inline styles on a Shadow DOM node are not editable.
236
237         * UserInterface/Views/DOMTreeElement.js:
238         (WebInspector.DOMTreeElement.prototype.ondelete):
239         (WebInspector.DOMTreeElement.prototype._startEditingTarget):
240         (WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
241         (WebInspector.DOMTreeElement.prototype._populateTextContextMenu):
242         (WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
243         (WebInspector.DOMTreeElement.prototype._startEditing):
244         Disable context menus and keyboard shortcuts on Shadow DOM nodes.
245         Only Context Menu item we keep is "Copy as HTML".
246
247         * UserInterface/Views/DOMTreeOutline.js:
248         (WebInspector.DOMTreeOutline.prototype._contextMenuEventFired):
249         (WebInspector.DOMTreeOutline.prototype.populateContextMenu):
250         Eliminate double look-up.
251
252         * UserInterface/Views/RulesStyleDetailsPanel.js:
253         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.addNewRuleButton):
254         Do not add the New Rule Button to the Styles Sidebar of Shadow DOM Nodes.
255         Instead this will just be an empty divider.
256
257 2015-02-18  Nikita Vasilyev  <nvasilyev@apple.com>
258
259         Web Inspector: REGRESSION: Missing Divider line between console.log and console evaluation
260         https://bugs.webkit.org/show_bug.cgi?id=141770
261
262         Reviewed by Timothy Hatcher.
263
264         * UserInterface/Views/LogContentView.css:
265         (.console-item):
266         (.console-message): Deleted.
267
268 2015-02-18  Jono Wells  <jonowells@apple.com>
269
270         Web Inspector: Inspecting a page where resources are in folders forces folder organization on every subsequent page
271         https://bugs.webkit.org/show_bug.cgi?id=141397
272
273         Reviewed by Timothy Hatcher.
274
275         When removeChildren is called on an instance of a FolderizedTreeElement, the element's _groupedIntoFolders flag
276         will now be set to false. This will prevent unnecessary folderization upon a frame navigation. Also during an
277         onpopulate event, addChildForRepresentedObject is called repeatedly and much of the work done during each call
278         was unnecessary. That work has now been partially removed and partially relocated to a function that is only
279         called at the beginning of an onpopulate event.
280
281         * UserInterface/Views/FolderizedTreeElement.js:
282         (WebInspector.FolderizedTreeElement.prototype.set removeChildren): Set _groupedIntoFolders to false.
283         (WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject): Remove unnecessary treeOutline
284         emptiness check, and move _shouldGroupIntoFolders() check to new function prepareToPopulate().
285         (WebInspector.FolderizedTreeElement.prototype.prepareToPopulate): Create.
286         (WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue): Call prepareToPopulate().
287
288         * UserInterface/Views/FrameTreeElement.js:
289         (WebInspector.FrameTreeElement.prototype.onpopulate): Call prepareToPopulate().
290
291         * UserInterface/Views/GeneralTreeElement.js: Drive-by inheritance style fix.
292         * UserInterface/Views/ResourceTreeElement.js: Drive-by inheritance style fix.
293
294 2015-02-16  Joseph Pecoraro  <pecoraro@apple.com>
295
296         Web Inspector: ES6: Improved Console Support for Promise Objects
297         https://bugs.webkit.org/show_bug.cgi?id=141634
298
299         Reviewed by Timothy Hatcher.
300
301         * UserInterface/Protocol/RemoteObject.js:
302         For now just add Internal Properties and regular properties.
303         We will address the UI later.
304
305 2015-02-16  Nikita Vasilyev  <nvasilyev@apple.com>
306
307         Web Inspector: Tweak the styles on the Console
308         https://bugs.webkit.org/show_bug.cgi?id=140580
309
310             - Use non-monospace (default sans-serif) font for console messages, but keep using monospace font
311               for objects, functions, and anything else that presumably code.
312             - Display all expandable objects on a separate row.
313
314         Reviewed by Timothy Hatcher.
315
316         * UserInterface/Views/ConsoleCommand.js:
317         (WebInspector.ConsoleCommand.prototype.decorateMessageElement):
318         (WebInspector.ConsoleCommand.prototype.toMessageElement):
319         * UserInterface/Views/ConsoleGroup.js:
320         (WebInspector.ConsoleGroup.prototype.addMessage):
321         * UserInterface/Views/ConsoleMessageImpl.js:
322         (WebInspector.ConsoleMessageImpl.prototype._format):
323         (WebInspector.ConsoleMessageImpl.prototype._isExpandable):
324         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
325         (WebInspector.ConsoleMessageImpl.prototype.append):
326         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
327         (WebInspector.ConsoleMessageImpl.prototype.decorateMessageElement):
328         (WebInspector.ConsoleMessageImpl.prototype.toMessageElement):
329         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString): Deleted.
330         * UserInterface/Views/LogContentView.css:
331         (.console-messages):
332         (.console-formatted-object):
333         (.expandable.source-code):
334         (.console-message):
335         (.console-item.selected::after):
336         (.console-messages:focus .console-item.selected::after):
337         (.console-user-command-result.console-log-level::before):
338         (.console-item::before):
339         (.console-message .bubble):
340         (.console-error-level):
341         (.console-error-level .section .header .title):
342         (.console-error-level::before):
343         (.console-warning-level):
344         (.console-warning-level .console-message-text):
345         (.console-warning-level::before):
346         (.console-user-command::before):
347         (.console-group-messages .section):
348         (.console-group-messages .section .header::before):
349         (.console-group-messages .section .header .title):
350         (.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap):
351         (.outline-disclosure li):
352         (.outline-disclosure li.parent::before):
353         (.console-item): Deleted.
354         (.console-item.selected): Deleted.
355         (.console-messages:focus .console-item.selected): Deleted.
356         (.console-item.selected .console-message::after): Deleted.
357         (.console-messages:focus .console-item.selected .data-grid tr.selected): Deleted.
358         (.console-messages:focus .console-item.selected .console-message::after): Deleted.
359         (.console-message, .console-user-command): Deleted.
360         (.console-message::before, .console-user-command::before, .javascript-prompt::before, .console-group-title::before): Deleted.
361         (.console-group): Deleted.
362         (.console-debug-level .console-message-text): Deleted.
363         (.console-debug-level::before): Deleted.
364         (.console-group-messages .section .header): Deleted.
365         (.console-group-messages .outline-disclosure): Deleted.
366         (.console-group-messages .outline-disclosure > ol): Deleted.
367         (.outline-disclosure li.elements-drag-over .selection): Deleted.
368         (.outline-disclosure ol:focus li.selected .selection): Deleted.
369         (.outline-disclosure > ol): Deleted.
370         * UserInterface/Views/LogContentView.js:
371         (WebInspector.LogContentView.prototype._mousemove):
372         (WebInspector.LogContentView.prototype._updateMessagesSelection):
373         (WebInspector.LogContentView.prototype._isMessageVisible):
374         (WebInspector.LogContentView.prototype._isMessageSelected):
375         (WebInspector.LogContentView.prototype._selectAllMessages):
376         (WebInspector.LogContentView.prototype._unfilteredMessages):
377         (WebInspector.LogContentView.prototype._visibleMessages):
378         (WebInspector.LogContentView.prototype._filterMessages):
379         (WebInspector.LogContentView.prototype._leftArrowWasPressed):
380         (WebInspector.LogContentView.prototype._propertiesSectionDidUpdateContent):
381         (WebInspector.LogContentView.prototype._performSearch):
382         * UserInterface/Views/Section.css:
383         (.section .header .title::before):
384         (.section.expanded .header .title::before):
385         (.section .header .title, .event-bar .header .title):
386         (.properties-tree li.parent::before):
387         (.section .header::before): Deleted.
388         (.section.expanded .header::before): Deleted.
389
390 2015-02-15  Brian J. Burg  <burg@cs.washington.edu>
391
392         Web Inspector: remove unused XHR replay code
393         https://bugs.webkit.org/show_bug.cgi?id=141622
394
395         Reviewed by Timothy Hatcher.
396
397         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
398         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
399         * Versions/Inspector-iOS-7.0.json:
400         * Versions/Inspector-iOS-8.0.json:
401
402 2015-02-14  Joseph Pecoraro  <pecoraro@apple.com>
403
404         Web Inspector: Remove specificity approximation
405         https://bugs.webkit.org/show_bug.cgi?id=141600
406
407         Reviewed by Timothy Hatcher.
408
409         * Localizations/en.lproj/localizedStrings.js:
410         * UserInterface/Views/CSSStyleDeclarationSection.js:
411         (WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
412
413 2015-02-13  Timothy Hatcher  <timothy@apple.com>
414
415         Web Inspector: support better git diff of localizedStrings.js
416         https://bugs.webkit.org/show_bug.cgi?id=137237
417
418         Reviewed by Joseph Pecoraro.
419
420         * .gitattributes: Added.
421
422 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
423
424         Web Inspector: add keyboard shortcut to enable/disable all breakpoints
425         https://bugs.webkit.org/show_bug.cgi?id=141527
426
427         Reviewed by Joseph Pecoraro.
428
429         * Localizations/en.lproj/localizedStrings.js:
430         * UserInterface/Views/DebuggerSidebarPanel.js:
431         (WebInspector.DebuggerSidebarPanel): Bind Command/Control + Y to toggle breakpoints button.
432
433 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
434
435         Web Inspector: support adding and removing timelines to the timeline sidebar panel and overview
436         https://bugs.webkit.org/show_bug.cgi?id=138434
437
438         Reviewed by Timothy Hatcher.
439
440         A timeline recording's timelines should not be static. This patch adds relevant machinery to
441         dynamically add and remove timelines from the Timeline model object and its various views.
442
443         From the model side, this is a simple change that adds TimelineAdded and TimelineRemoved events.
444         The timeline views and timeline sidebar require more extensive changes to support this functionality.
445         Instead of keeping a fixed set of timeline tree elements, the sidebar view now adds and removes
446         tree elements to reflect the available timelines for the displayed timeline recording.
447
448         This change also includes several minor cleanups, such as appending 'Element' to view properties that
449         are DOM elements, and renaming TimelineContentView to TimelineRecordingContentView.
450
451         * UserInterface/Controllers/TimelineManager.js:
452         (WebInspector.TimelineManager.prototype._loadNewRecording):
453         Populate predefined network, layout, and script timelines here after constructing the recording.
454
455         * UserInterface/Main.html:
456         * UserInterface/Models/Timeline.js:
457         Move hardcoded class names and localized strings to these base class methods. This is not implemented
458         using overridden methods because not all timeline types have their own subclasses. Add a dummy
459         implementation of saveIdentityToCookie() to avoid warnings when saving sidebar panel selection state.
460
461         (WebInspector.Timeline.prototype.get type):
462         (WebInspector.Timeline.prototype.get displayName): Added.
463         (WebInspector.Timeline.prototype.get iconClassName): Added.
464         (WebInspector.Timeline.prototype.addRecord):
465         * UserInterface/Models/TimelineRecording.js:
466         (WebInspector.TimelineRecording):
467         (WebInspector.TimelineRecording.prototype.addTimeline.set timeline): Added.
468         (WebInspector.TimelineRecording.prototype.addTimeline): Added.
469         (WebInspector.TimelineRecording.prototype.removeTimeline.get this): Added.
470         (WebInspector.TimelineRecording.prototype.removeTimeline): Added.
471         * UserInterface/Views/ContentView.js:
472         (WebInspector.ContentView):
473         * UserInterface/Views/LayoutTimelineView.css:
474         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):
475         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle): Deleted.
476         * UserInterface/Views/LayoutTimelineView.js:
477         (WebInspector.LayoutTimelineView.prototype._treeElementSelected):
478         (WebInspector.LayoutTimelineView.prototype._closeStatusButtonClicked):
479         * UserInterface/Views/NavigationSidebarPanel.js:
480         (WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie): Fix error message formatting.
481         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
482         * UserInterface/Views/NetworkTimelineView.css:
483         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle):
484         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle): Deleted.
485         * UserInterface/Views/NetworkTimelineView.js:
486         (WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked):
487         * UserInterface/Views/ScriptTimelineView.css:
488         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):
489         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle): Deleted.
490         * UserInterface/Views/ScriptTimelineView.js:
491         (WebInspector.ScriptTimelineView.prototype._treeElementSelected):
492         (WebInspector.ScriptTimelineView.prototype._closeStatusButtonClicked):
493         * UserInterface/Views/TimelineOverview.js:
494         Convert this class to use the representedObject class pattern. It manages its own mapping from timelines
495         to overview graph views. Append 'Element' to some properties holding DOM elements.
496         (WebInspector.TimelineOverview):
497         (WebInspector.TimelineOverview.prototype.get visibleDuration):
498         (WebInspector.TimelineOverview.prototype.reset):
499         (WebInspector.TimelineOverview.prototype.updateLayout):
500         (WebInspector.TimelineOverview.prototype._handleScrollEvent):
501         (WebInspector.TimelineOverview.prototype._handleWheelEvent):
502         (WebInspector.TimelineOverview.prototype._timelineRemoved):
503         (WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
504         (WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
505         * UserInterface/Views/TimelineRecordingContentView.css: Renamed from Source/WebInspectorUI/UserInterface/Views/TimelineContentView.css.
506         Remove hard-coded top offsets and heights that need to be dynamically calculated.
507         (.content-view.timeline-recording > .timeline-overview):
508         (.content-view.timeline-recording > .view-container):
509         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid td):
510         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid table.data):
511         * UserInterface/Views/TimelineRecordingContentView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/TimelineContentView.js.
512         Manage timeline views and path components dynamically. Adjust view heights as necessary. Append 'Element'
513         to some properties holding DOM elements.
514         (WebInspector.TimelineRecordingContentView):
515         (WebInspector.TimelineRecordingContentView.prototype.showOverviewTimelineView):
516         (WebInspector.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
517         (WebInspector.TimelineRecordingContentView.prototype.get allowedNavigationSidebarPanels):
518         (WebInspector.TimelineRecordingContentView.prototype.get supportsSplitContentBrowser):
519         (WebInspector.TimelineRecordingContentView.prototype.get navigationItems):
520         (WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
521         (WebInspector.TimelineRecordingContentView.prototype.shown):
522         (WebInspector.TimelineRecordingContentView.prototype.hidden):
523         (WebInspector.TimelineRecordingContentView.prototype.filterDidChange):
524         (WebInspector.TimelineRecordingContentView.prototype.updateLayout):
525         (WebInspector.TimelineRecordingContentView.prototype.saveToCookie):
526         (WebInspector.TimelineRecordingContentView.prototype.restoreFromCookie):
527         (WebInspector.TimelineRecordingContentView.prototype.get matchTreeElementAgainstCustomFilters.checkTimeBounds):
528         (WebInspector.TimelineRecordingContentView.prototype.get matchTreeElementAgainstCustomFilters):
529         (WebInspector.TimelineRecordingContentView.prototype._pathComponentSelected):
530         (WebInspector.TimelineRecordingContentView.prototype._timelineViewSelectionPathComponentsDidChange):
531         (WebInspector.TimelineRecordingContentView.prototype._showTimelineView):
532         (WebInspector.TimelineRecordingContentView.prototype._update):
533         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
534         (WebInspector.TimelineRecordingContentView.prototype._startUpdatingCurrentTime):
535         (WebInspector.TimelineRecordingContentView.prototype._stopUpdatingCurrentTime):
536         (WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
537         (WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
538         (WebInspector.TimelineRecordingContentView.prototype._debuggerPaused):
539         (WebInspector.TimelineRecordingContentView.prototype._debuggerResumed):
540         Fix a minor regression where we make a useless call to stop updating the time.
541
542         (WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated):
543         (WebInspector.TimelineRecordingContentView.prototype._clearTimeline):
544         (WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
545         (WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
546         (WebInspector.TimelineRecordingContentView.prototype._recordingReset):
547         (WebInspector.TimelineRecordingContentView.prototype._recordingUnloaded):
548         (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
549         * UserInterface/Views/TimelineSidebarPanel.css:
550         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing > .content):
551         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content): Deleted.
552         * UserInterface/Views/TimelineSidebarPanel.js:
553         Manage timeline tree elements dynamically. Adjust view heights as necessary. Append 'Element'
554         to some properties holding DOM elements. Keep track of the displayed recording and view explicitly.
555         (WebInspector.TimelineSidebarPanel):
556         (WebInspector.TimelineSidebarPanel.prototype.shown):
557         (WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView):
558         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looselyCompareRepresentedObjects):
559         (WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
560         (WebInspector.TimelineSidebarPanel.prototype.updateFilter):
561         (WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
562         (WebInspector.TimelineSidebarPanel.prototype.canShowDifferentContentView):
563         (WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
564         (WebInspector.TimelineSidebarPanel.prototype.get if):
565         (WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
566         (WebInspector.TimelineSidebarPanel.prototype._recordingCountChanged):
567         (WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
568         (WebInspector.TimelineSidebarPanel.prototype._recordingLoaded):
569         (WebInspector.TimelineSidebarPanel.prototype._timelineRemoved):
570         (WebInspector.TimelineSidebarPanel.prototype._timelineCountChanged):
571         (WebInspector.TimelineSidebarPanel.createTimelineTreeElement): Deleted.
572         (WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie):
573         * UserInterface/Views/TimelineView.css:
574         (.panel.navigation.timeline.timeline-recording-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
575         (.panel.navigation.timeline.timeline-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
576
577 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
578
579         Web Inspector: Large background image fails to load in inspector
580         https://bugs.webkit.org/show_bug.cgi?id=141405
581
582         Reviewed by Timothy Hatcher.
583
584         Convert base64-encoded resource data to binary data using Uint8Array and Blobs.
585         Use object URLs for blobs instead of data URLs when setting image 'src' attribute
586         and in @font-face urls. This conversion happens when the backend indicates that
587         resource content is base64-encoded.
588
589         Update image and font clients of resource-fetching functionality so that they use
590         object URLs correctly. Add some plumbing so that Blobs can be constructed with
591         the correct mime-type.
592
593         * UserInterface/Base/Utilities.js:
594         (decodeBase64ToBlob): Added.
595         * UserInterface/Models/CSSStyleSheet.js:
596         (WebInspector.CSSStyleSheet.prototype.get mimeType): Added.
597         * UserInterface/Models/Resource.js:
598         (WebInspector.Resource.prototype.createObjectURL): Added.
599         (WebInspector.Resource.prototype.getImageSize.imageDidLoad):
600         (WebInspector.Resource.prototype.getImageSize):
601         (WebInspector.Resource.prototype.get contentURL): Deleted.
602         * UserInterface/Models/Script.js:
603         (WebInspector.Script.prototype.get mimeType): Added.
604         * UserInterface/Models/SourceCode.js:
605         (WebInspector.SourceCode.prototype.get mimeType): Added.
606         (WebInspector.SourceCode.prototype._processContent):
607         (WebInspector.SourceCode.prototype.get contentIsBase64Encoded): Deleted.
608         * UserInterface/Models/SourceCodeRevision.js:
609         (WebInspector.SourceCodeRevision):
610         (WebInspector.SourceCodeRevision.prototype.copy):
611         (WebInspector.SourceCodeRevision.prototype.get contentIsBase64Encoded): Deleted.
612         (WebInspector.SourceCodeRevision.prototype.set contentIsBase64Encoded): Deleted.
613         * UserInterface/Views/FontResourceContentView.js:
614         (WebInspector.FontResourceContentView.prototype.hidden):
615         (WebInspector.FontResourceContentView.prototype.closed):
616         * UserInterface/Views/ImageResourceContentView.js:
617         (WebInspector.ImageResourceContentView.prototype.contentAvailable):
618
619 2015-02-11  Nikita Vasilyev  <nvasilyev@apple.com>
620
621         Web Inspector: REGRESSION: Clicking selected item in the sidebar second time should scroll to the corresponding line
622         https://bugs.webkit.org/show_bug.cgi?id=140280
623
624         Reviewed by Brian Burg.
625
626         * UserInterface/Views/ContentViewContainer.js:
627         (WebInspector.ContentViewContainer.prototype.showContentView):
628         Perform scolling regardless of the navigation history. Since scrolling source code doesn't introduce a BackForwardEntry,
629         it's possible that the actual content view has a different scroll position.
630
631 2015-02-10  Joseph Pecoraro  <pecoraro@apple.com>
632
633         Web Inspector: Better handle unknown release versions
634         https://bugs.webkit.org/show_bug.cgi?id=141454
635
636         Reviewed by Timothy Hatcher.
637
638         * UserInterface/Base/Platform.js:
639         If given an unknown Mac OS X version, at least parse
640         the version number in WebInspector.Platform.
641
642 2015-02-10  Nikita Vasilyev  <nvasilyev@apple.com>
643
644         Web Inspector: Make collapsed sidebars undraggable
645         https://bugs.webkit.org/show_bug.cgi?id=140664
646
647         Reviewed by Timothy Hatcher.
648
649         * UserInterface/Views/Sidebar.css:
650         (.sidebar.collapsed):
651         (.sidebar.collapsed.right > .resizer): Deleted.
652         (.sidebar.collapsed.left > .resizer): Deleted.
653         * UserInterface/Views/Sidebar.js:
654         (WebInspector.Sidebar):
655         (WebInspector.Sidebar.prototype._resizerMouseDown):
656         (WebInspector.Sidebar.prototype._resizerMouseMoved):
657         (WebInspector.Sidebar.prototype._resizerDoubleClicked): Deleted.
658
659 2015-02-10  Joseph Pecoraro  <pecoraro@apple.com>
660
661         Web Inspector: CSS Pretty Printing: still fails fails to put space between rgb(...) and numbers in minified gradients
662         https://bugs.webkit.org/show_bug.cgi?id=141411
663
664         Reviewed by Timothy Hatcher.
665
666         * Tools/PrettyPrinting/CodeMirrorFormatters.js:
667         * UserInterface/Views/CodeMirrorFormatters.js:
668         Token actually was "number m-css" so we should check token strings
669         more robustly, like elsewhere in the formatters.
670
671 2015-02-09  Brian J. Burg  <burg@cs.washington.edu>
672
673         Web Inspector: Uncaught exception when reporting wrong backend command call signature
674         https://bugs.webkit.org/show_bug.cgi?id=141401
675
676         Reviewed by Joseph Pecoraro.
677
678         * UserInterface/Protocol/InspectorBackend.js:
679         (InspectorBackend.Command.prototype._invokeWithArguments): Fix wrong variable name.
680
681 2015-02-06  Jono Wells  <jonowells@apple.com>
682
683         Web Inspector: REGRESSION: CSS Resource appears as empty after editing it via Styles sidebar
684         https://bugs.webkit.org/show_bug.cgi?id=140586
685
686         Reviewed by Timothy Hatcher.
687
688         Update SourceCode#_processContent to properly handle the promise returned from CSSAgent so that the content
689         will properly update when a style has changed. Properly clear the existing _requestContentPromise on the
690         stylesheet so that the content will update correctly.
691
692         * UserInterface/Controllers/CSSStyleManager.js: Drive-by style updates.
693         (WebInspector.CSSStyleManager.prototype._fetchInfoForAllStyleSheets):
694         * UserInterface/Models/CSSStyleSheet.js: Drive-by inheritance style update.
695         (WebInspector.CSSStyleSheet.prototype.requestContentFromBackend): Remove unnecessary backend promise function call.
696         * UserInterface/Models/Resource.js: Drive-by removal of unused variable.
697         * UserInterface/Models/SourceCode.js:
698         (WebInspector.SourceCode.prototype.markContentAsStale): Clear _requestContentPromise.
699         (WebInspector.SourceCode.prototype._processContent): Handle `parameters.text` correctly.
700
701 2015-02-04  Jono Wells  <jonowells@apple.com>
702
703         Web Inspector: REGRESSION: Inline SourceMap resources show empty content when opened.
704         https://bugs.webkit.org/show_bug.cgi?id=141225
705
706         Reviewed by Timothy Hatcher.
707
708         Change WebInspector.SourceMapResource.prototype.requestContentFromBackend to correctly and consistently handle
709         calls to NetworkAgent. The helper function sourceMapResourceLoaded will now properly handle parameters as a single
710         payload, including manual calls in the case where the source map content is in a data URI. Also
711         WebInspector.SourceCode.prototype._processContent now properly handles an error string used for displaying
712         resource loading error messages in the resource content view.
713
714         * UserInterface/Models/Resource.js: drive-by style fix.
715
716         * UserInterface/Models/SourceCode.js:
717         (WebInspector.SourceCode.prototype._processContent):
718         Properly handle error string.
719
720         * UserInterface/Models/SourceMapResource.js:
721         (WebInspector.SourceMapResource.prototype.requestContentFromBackend):
722         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
723         Formerly sourceMapResourceLoadError, now handles parameters from the NetworkAgent correctly.
724
725         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoadError):
726         This function now handles NetworkAgent errors only.
727
728 2015-02-05  Brian J. Burg  <burg@cs.washington.edu>
729
730         Web Inspector: eliminate some unnecessary layout/painting in timeline overview and ruler
731         https://bugs.webkit.org/show_bug.cgi?id=141293
732
733         Reviewed by Timothy Hatcher.
734
735         The timeline overview's ruler was forcing repaints of divider labels even if the labels
736         had not changed since the last requestAnimationFrame. Bail out early if nothing changed.
737
738         The timeline overview and its graphs were updating layout using requestAnimationFrame
739         even when the TimelineContentView is not visible. Fix this by propagating visibility
740         changes to subviews, and not updating layout when hidden.
741
742         The above change also fixes an assertion sometimes encountered when the timeline view
743         tries to cache an element's offset width, but cannot because it isn't visible.
744
745         * UserInterface/Views/TimelineContentView.js:
746         (WebInspector.TimelineContentView.prototype.shown):
747         (WebInspector.TimelineContentView.prototype.hidden):
748         * UserInterface/Views/TimelineOverview.js:
749         (WebInspector.TimelineOverview.prototype.get visible):
750         (WebInspector.TimelineOverview.prototype.shown):
751         (WebInspector.TimelineOverview.prototype.hidden):
752         (WebInspector.TimelineOverview.prototype._needsLayout):
753         * UserInterface/Views/TimelineOverviewGraph.js:
754         (WebInspector.TimelineOverviewGraph.prototype.get visible):
755         (WebInspector.TimelineOverviewGraph.prototype.shown):
756         (WebInspector.TimelineOverviewGraph.prototype.hidden):
757         (WebInspector.TimelineOverviewGraph.prototype.needsLayout):
758         * UserInterface/Views/TimelineRuler.js:
759         (WebInspector.TimelineRuler.prototype.updateLayout):
760
761 2015-02-04  Joseph Pecoraro  <pecoraro@apple.com>
762
763         Web Inspector: ES6: Improved Console Support for Symbol Objects
764         https://bugs.webkit.org/show_bug.cgi?id=141173
765
766         Reviewed by Timothy Hatcher.
767
768         * UserInterface/Protocol/RemoteObject.js:
769         (WebInspector.RemoteObject):
770         (WebInspector.RemoteObject.prototype._isSymbol):
771         Symbols have an objectId because it is a non-primitive that cannot be passed
772         by value, however it cannot have properties, so handle some cases.
773
774         * UserInterface/Views/LogContentView.css:
775         (.console-formatted-symbol):
776         Give Symbol's their own color.
777
778 2015-02-04  Nikita Vasilyev  <nvasilyev@apple.com>
779
780         Web Inspector: Insertion bar (caret) is hidden behind the placeholder text in the style editor
781         https://bugs.webkit.org/show_bug.cgi?id=139659
782
783         Reviewed by Timothy Hatcher.
784
785         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
786         (.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
787         Use non-monospace font to fit the placeholder text on a single line and
788         match the color if the native placeholder.
789
790 2015-02-04  Joseph Pecoraro  <pecoraro@apple.com>
791
792         Web Inspector: console.table with columnName filter for non-existent property should still show column
793         https://bugs.webkit.org/show_bug.cgi?id=141066
794
795         Reviewed by Timothy Hatcher.
796
797         * UserInterface/Views/ConsoleMessageImpl.js:
798         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
799         (WebInspector.ConsoleMessageImpl.prototype._userProvidedColumnNames):
800         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
801         If a second argument was provided to console.table, try to extract a list
802         of string names to use for the object properties. Output a table with
803         the provided column names, in the specified order. Also, use this
804         opportunity to mark missing properties with an em dash.
805
806 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
807
808         Web Inspector: CSS Autocompletion: Autodetect many color supporting properties
809         https://bugs.webkit.org/show_bug.cgi?id=141166
810
811         Reviewed by Timothy Hatcher.
812
813         * UserInterface/Base/Utilities.js:
814         Add String.prototype.endsWith. Group String extensions together.
815
816         * UserInterface/Models/CSSKeywordCompletions.js:
817         (WebInspector.CSSKeywordCompletions.forProperty):
818         If a property name ends in "color", provide CSS color completions.
819
820         (WebInspector.CSSKeywordCompletions.isColorAwareProperty): Deleted.
821         This was unused and disagrees slightly with the implementation above.
822
823 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
824
825         Web Inspector: Support console.table
826         https://bugs.webkit.org/show_bug.cgi?id=141058
827
828         Reviewed by Timothy Hatcher.
829
830         * Localizations/en.lproj/localizedStrings.js:
831         New "Index", "(Index)", "Value", table header strings.
832
833         * UserInterface/Views/ConsoleMessage.js:
834         Add "Table", but add FIXMEs to consider using the protocol generated enums.
835
836         * UserInterface/Views/ConsoleMessageImpl.js:
837         (WebInspector.ConsoleMessageImpl.prototype._format):
838         Special case console.table messages.
839
840         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
841         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement):
842         Factor out ProjectPreview printing. Also, replace newlines in strings
843         with return characters, like we did elsewhere.
844
845         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
846         Ultimately try to create a DataGrid from the output. Search first
847         for rich object data in the list. If no rich object data is found
848         just check for simple values. If the table is lossy, also do
849         a log of the object in case the user wants to see more data.
850
851
852         * UserInterface/Views/DataGrid.js:
853         (WebInspector.DataGrid):
854         The for..in enumeration is unordered and may not give us the
855         column ordering we wanted. So include an optional preferred
856         column names list to get the preferred order.
857
858         (WebInspector.DataGrid.createSortableDataGrid):
859         Numerous bug fixes here. Accidental globals, typos, and sorting failures.
860
861         (WebInspector.DataGrid.prototype.autoSizeColumns):
862         (WebInspector.DataGrid.prototype.textForDataGridNodeColumn):
863         (WebInspector.DataGrid.prototype._copyTextForDataGridNode):
864         Create a generic method to get the text for a datagrid node in a column.
865         This is important for getting the text from console.table previews which
866         contains Nodes.
867
868         * UserInterface/Views/LogContentView.css:
869         (.console-messages:focus .console-item.selected .data-grid tr.selected):
870         (.console-item .data-grid tr.selected):
871         DataGrid selection colors while in the console which may or may
872         not have selected console items.
873
874 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
875
876         Web Inspector: Extend CSS.getSupportedCSSProperties to provide values for properties for CSS Augmented JSContext
877         https://bugs.webkit.org/show_bug.cgi?id=141064
878
879         Reviewed by Timothy Hatcher.
880
881         * UserInterface/Models/CSSCompletions.js:
882         * UserInterface/Models/CSSKeywordCompletions.js:
883         (WebInspector.CSSKeywordCompletions.addCustomCompletions):
884         (WebInspector.CSSKeywordCompletions.addPropertyCompletionValues):
885         If a property is specified with custom values, extend the
886         keyword completions map to make those values available
887         in autocompletion.
888
889 2015-01-30  Joseph Pecoraro  <pecoraro@apple.com>
890
891         Remote Web Inspector should not show undock toolbar buttons
892         https://bugs.webkit.org/show_bug.cgi?id=141061
893
894         Reviewed by Timothy Hatcher.
895
896         * UserInterface/Base/Main.js:
897         (WebInspector.contentLoaded):
898         Be sure to update the toolbar's dock navigation icons because they
899         may need to be hidden (the default state).
900
901 2015-01-29  Saam Barati  <saambarati1@gmail.com>
902
903         Web Inspector: Allow text selection when the BasicBlockAnnotator is enabled
904         https://bugs.webkit.org/show_bug.cgi?id=140987
905
906         Reviewed by Timothy Hatcher.
907
908         Because the BasicBlockAnnotator no longer sets the background color of
909         lines that haven't executed to gray, text selection while the
910         BasicBlockAnnotator is enabled no longer results in a bad user interface.
911         This patch both allows text selection while the BasicBlockAnnotator is
912         enabled and also removes the now unused listeners to CodeMirror's focus
913         and blur events.
914
915         * UserInterface/Views/SourceCodeTextEditor.js:
916         (WebInspector.SourceCodeTextEditor):
917         (WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
918         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
919         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
920         (WebInspector.SourceCodeTextEditor.prototype.gainedFocus): Deleted.
921         (WebInspector.SourceCodeTextEditor.prototype.lostFocus): Deleted.
922         * UserInterface/Views/TextEditor.js:
923         (WebInspector.TextEditor):
924         (WebInspector.TextEditor.prototype.gainedFocus): Deleted.
925         (WebInspector.TextEditor.prototype.lostFocus): Deleted.
926
927 2015-01-29  Saam Barati  <saambarati1@gmail.com>
928
929         Web Inspector: Make BasicBlockAnnotator lessen the saturation of syntax highlighting instead of graying out unexecuted code
930         https://bugs.webkit.org/show_bug.cgi?id=141011
931
932         Reviewed by Timothy Hatcher.
933
934         This patch removes a lot of the complicated logic associated around 
935         determining which code can be grayed out by the BasicBlockAnnotator. 
936         Instead, the BasicBlockAnnotator now applies a CSS class to all the
937         code that has not executed which lessens the saturation of the 
938         syntax coloring for the code. This creates both a nicer user
939         interface and a nicer user experience because it makes reading
940         source code with the BasicBlockAnnotator enabled more pleasant.
941
942         * UserInterface/Controllers/BasicBlockAnnotator.js:
943         (WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges.):
944         (WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):
945         (WebInspector.BasicBlockAnnotator.prototype.set _highlightTextForBasicBlock):
946         (WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyWhitespace): Deleted.
947         (WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyClosingBrace): Deleted.
948         (_canGrayOutEntireLine): Deleted.
949         (_grayOutLine): Deleted.
950         (_clearRangeForBasicBlockMarker.get marker): Deleted.
951         (_clearRangeForBasicBlockMarker): Deleted.
952         * UserInterface/Views/SourceCodeTextEditor.css:
953         (.hover-menu.color > img):
954         (.basic-block-has-not-executed): Deleted.
955         (.basic-block-has-not-executed-prepend::before): Deleted.
956         * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
957         (.cm-s-default .basic-block-has-not-executed):
958         (.cm-s-default .basic-block-has-not-executed.cm-comment):
959         (.cm-s-default .basic-block-has-not-executed.cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-3, .cm-property)):
960         (.cm-s-default .basic-block-has-not-executed:matches(.cm-number, .cm-atom.cm-hex-color)):
961         (.cm-s-default .basic-block-has-not-executed.cm-string):
962         (.cm-s-default .basic-block-has-not-executed.cm-m-xml.cm-meta):
963         (.cm-s-default .basic-block-has-not-executed.cm-m-xml.cm-attribute):
964
965 2015-01-29  Joseph Pecoraro  <pecoraro@apple.com>
966
967         Web Inspector: ES6: Improved Console Format for Set and Map Objects (like Arrays)
968         https://bugs.webkit.org/show_bug.cgi?id=122867
969
970         Reviewed by Timothy Hatcher.
971
972         This includes Set/Map/WeakMap previews:
973
974             - Set previews: Set {1, 2, 3}
975             - Map/WeakMap previews: Map {1 => 2, "key" => "value"}
976
977         For WeakMaps:
978         
979             - the preview itself shows up to 5 key/value pairs from when the object was logged
980             - the previews are strings only, and thus do not retain the actual keys/values
981             - when expanding, we get RemoteObjects and strongly retain the keys/values
982             - when collapsing / clearing, we release the RemoteObjects so they can get collected
983
984         Currently you collapse the <entries> section, and re-expand later the
985         collection may show you knew keys/values. The UI for this will change.
986
987         * Localizations/en.lproj/localizedStrings.js:
988         * UserInterface/Protocol/RemoteObject.js:
989         (WebInspector.RemoteObject.prototype.isCollectionType):
990         (WebInspector.RemoteObject.prototype.isWeakCollection):
991         (WebInspector.RemoteObject.prototype.getCollectionEntries):
992         (WebInspector.RemoteObject.prototype.releaseWeakCollectionEntries):
993         (WebInspector.RemoteObject.prototype.arrayLength):
994         (WebInspector.RemoteObject.prototype._weakCollectionObjectGroup):
995         High level functions for dealing with a RemoteObject that may be a
996         collection / weak collection.
997
998         * UserInterface/Views/ConsoleMessageImpl.js:
999         (WebInspector.ConsoleMessageImpl):
1000         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
1001         Include default formatters for collection types.
1002
1003         (WebInspector.ConsoleMessageImpl.prototype._appendPreview):
1004         (WebInspector.ConsoleMessageImpl.prototype._appendEntryPreviews):
1005         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
1006         (WebInspector.ConsoleMessageImpl.prototype._appendValuePreview):
1007         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview): Deleted.
1008         Refactor preview generation a bit and include a specific path for
1009         generation the output of a preview with "entries".
1010
1011         * UserInterface/Views/LogContentView.css:
1012         (.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object):
1013         With nested Object previews ("Map {{a:1} => 1}") don't show "Object" for the inner
1014         object preview. Only show it if it has a unique type ("Map {Foo {a:1} => 1}")
1015
1016         (.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap):
1017         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .section):
1018         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .properties):
1019         Make map/set/weakmap display like Objects.
1020
1021         * UserInterface/Views/ObjectPropertiesSection.js:
1022         (WebInspector.ObjectPropertiesSection.prototype.update):
1023         (WebInspector.ObjectPropertiesSection.prototype.updateProperties):
1024         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate.callback):
1025         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
1026         (WebInspector.CollectionEntriesMainTreeElement):
1027         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand.callback):
1028         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand):
1029         (WebInspector.CollectionEntriesMainTreeElement.prototype.oncollapse):
1030         (WebInspector.CollectionEntriesMainTreeElement.prototype.ondetach):
1031         (WebInspector.CollectionEntriesMainTreeElement.prototype._trackWeakEntries):
1032         (WebInspector.CollectionEntriesMainTreeElement.prototype._untrackWeakEntries):
1033         (WebInspector.CollectionEntryTreeElement):
1034         (WebInspector.CollectionEntryTreeElement.prototype.onpopulate):
1035         (WebInspector.CollectionEntryTreeElement.prototype.onattach):
1036         (WebInspector.EmptyCollectionTreeElement):
1037         (WebInspector.ObjectPropertiesSection.prototype.update.callback): Deleted.
1038         Add a quick UI for exploring the entries of a collection. We are actively
1039         changing the styles of objects in the Console, so this should change soon.
1040
1041 2015-01-28  Joseph Pecoraro  <pecoraro@apple.com>
1042
1043         Web Inspector: Change Main Frame Status Buttons when debugging Augmented JSContext
1044         https://bugs.webkit.org/show_bug.cgi?id=141006
1045
1046         Reviewed by Timothy Hatcher.
1047
1048         * Localizations/en.lproj/localizedStrings.js:
1049         New "Restart" string.
1050
1051         * UserInterface/Base/Main.js:
1052         (WebInspector.canArchiveMainFrame):
1053         * UserInterface/Views/FrameTreeElement.js:
1054         (WebInspector.FrameTreeElement.prototype.updateStatusForMainFrame):
1055         (WebInspector.FrameTreeElement.prototype._updateDownloadButton):
1056         Update the tooltip when in a non-Web debuggable, and only show
1057         the Download button when in a Web debuggable.
1058
1059         * UserInterface/Views/TreeElementStatusButton.js:
1060         (WebInspector.TreeElementStatusButton.prototype.set hidden):
1061         Oops! The implementation was backwards. Simplify with classList.toggle.
1062
1063 2015-01-28  Brian J. Burg  <burg@cs.washington.edu>
1064
1065         Web Inspector: remove CSS.setPropertyText, CSS.toggleProperty and related dead code
1066         https://bugs.webkit.org/show_bug.cgi?id=140961
1067
1068         Reviewed by Timothy Hatcher.
1069
1070         Setters for CSSProperty (except override) are not used, so delete them. These setters
1071         and their callees in DOMNodeStyles were the only clients of the removed protocol commands.
1072
1073         * UserInterface/Models/CSSProperty.js:
1074         (WebInspector.CSSProperty.prototype.update):
1075         (WebInspector.CSSProperty.prototype.get name):
1076         (WebInspector.CSSProperty.prototype.get value):
1077         (WebInspector.CSSProperty.prototype.get priority):
1078         (WebInspector.CSSProperty.prototype.hasOtherVendorNameOrKeyword):
1079         (WebInspector.CSSProperty.prototype.set text): Deleted.
1080         (WebInspector.CSSProperty.prototype.set name): Deleted.
1081         (WebInspector.CSSProperty.prototype.set value): Deleted.
1082         (WebInspector.CSSProperty.prototype.set important): Deleted.
1083         (WebInspector.CSSProperty.prototype.set priority): Deleted.
1084         (WebInspector.CSSProperty.prototype.set enabled): Deleted.
1085         (WebInspector.CSSProperty.prototype.add): Deleted.
1086         (WebInspector.CSSProperty.prototype.remove): Deleted.
1087         (WebInspector.CSSProperty.prototype._updatePropertySoon.performUpdate): Deleted.
1088         (WebInspector.CSSProperty.prototype._updatePropertySoon): Deleted.
1089         (WebInspector.CSSProperty.prototype._cancelPendingUpdate): Deleted.
1090         * UserInterface/Models/CSSStyleDeclaration.js:
1091         (WebInspector.CSSStyleDeclaration.prototype.addProperty): Deleted.
1092         (WebInspector.CSSStyleDeclaration.prototype.removeProperty): Deleted.
1093         * UserInterface/Models/DOMNodeStyles.js:
1094         (WebInspector.DOMNodeStyles.prototype.addEmptyRule):
1095         (WebInspector.DOMNodeStyles.prototype.addRule): Deleted.
1096         (WebInspector.DOMNodeStyles.prototype.changeProperty): Deleted.
1097         (WebInspector.DOMNodeStyles.prototype.changePropertyText): Deleted.
1098         (WebInspector.DOMNodeStyles.prototype.changePropertyEnabledState): Deleted.
1099         (WebInspector.DOMNodeStyles.prototype.addProperty): Deleted.
1100         (WebInspector.DOMNodeStyles.prototype.removeProperty): Deleted.
1101         (WebInspector.DOMNodeStyles.prototype._handlePropertyChange): Deleted.
1102         * UserInterface/Protocol/Legacy/6.0/InspectorBackendCommands.js:
1103         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
1104         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
1105         * UserInterface/Views/RulesStyleDetailsPanel.js:
1106         (WebInspector.RulesStyleDetailsPanel.prototype._newRuleClicked):
1107         * Versions/Inspector-iOS-6.0.json:
1108         * Versions/Inspector-iOS-7.0.json:
1109         * Versions/Inspector-iOS-8.0.json:
1110
1111 2015-01-28  Dana Burkart  <dburkart@apple.com>
1112
1113         Move ASan flag settings from DebugRelease.xcconfig to Base.xcconfig
1114         https://bugs.webkit.org/show_bug.cgi?id=136765
1115
1116         Reviewed by Alexey Proskuryakov.
1117
1118         * Configurations/Base.xcconfig:
1119         * Configurations/DebugRelease.xcconfig:
1120
1121 2015-01-23  Joseph Pecoraro  <pecoraro@apple.com>
1122
1123         Web Inspector: Object Previews in the Console
1124         https://bugs.webkit.org/show_bug.cgi?id=129204
1125
1126         Reviewed by Timothy Hatcher.
1127
1128         * UserInterface/Controllers/JavaScriptLogViewController.js:
1129         (WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
1130         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
1131         (get WebInspector.JavaScriptRuntimeCompletionProvider.prototype.):
1132         Update RuntimeManager callsites that do not need object previews.
1133
1134         * UserInterface/Controllers/RuntimeManager.js:
1135         (WebInspector.RuntimeManager.prototype.evalCallback):
1136         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
1137         Update the main evaluate method to include a boolean parameter for
1138         object previews. Most callers do not need them. Also, since previews
1139         were not available on iOS 6, switch to invoke, to conditionally
1140         include the command parameter.
1141
1142         * UserInterface/Protocol/RemoteObject.js:
1143         (WebInspector.RemoteObject):
1144         (WebInspector.RemoteObject.fromPayload):
1145         (WebInspector.RemoteObject.prototype.get preview):
1146         Store the preview from the payload.
1147
1148         * UserInterface/Views/ConsoleMessageImpl.js:
1149         (WebInspector.ConsoleMessageImpl.prototype._format):
1150         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
1151         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
1152         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
1153         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
1154         Pass an explicit false for most formatters to not use a preview if available.
1155         
1156         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
1157         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
1158         Currently only object types are previewed. Though we request previews
1159         for arrays, we don't use the preview because we show a better preview
1160         by just immediately requesting for a full non-preview property list.
1161         
1162         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
1163         Quickly output an object preview into the title element. The format
1164         is "ClassName {prop: value...}". Elide the class name if it is "Object".
1165         Also skip over certain preview properties that may not be useful
1166         at a glance (like constructor, or accessors without values).
1167
1168         * UserInterface/Views/LogContentView.css:
1169         (.console-object-preview):
1170         (.console-formatted-array .console-object-preview):
1171         (.console-object-preview-lossless):
1172         (.expanded .console-object-preview):
1173         Show lossy previews in italics.
1174         Show lossless previews and array previews without italics.
1175         Do not show the class name in the preview in italics when expanded.
1176
1177         (.console-object-preview .name):
1178         Give preview property names the same color as ObjectPropertiesSection property names.
1179         
1180         (.expanded .console-object-preview > .console-object-preview-body):
1181         When expanding an object, hide the preview.
1182
1183         (.console-object-preview > .console-object-preview-name.console-object-preview-name-Object):
1184         (.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object):
1185         For "Object" previews, hide the name "Object" when not expanded, and show it when expanded.
1186
1187 2015-01-23  Saam Barati  <saambarati1@gmail.com>
1188
1189         Web Inspector: Disable *Annotators on minified files that aren't pretty printed
1190         https://bugs.webkit.org/show_bug.cgi?id=140550
1191
1192         Reviewed by Timothy Hatcher.
1193
1194         When SourceCodeTextEditor speculates that a file is minified it 
1195         sets a flag on itself that the Annotators will notice when pretty 
1196         printing and turning on type profiling. 
1197
1198         SourceCodeTextEditor enforces the following two behaviors:
1199
1200         1. Always pretty print a file if we think it's minified while 
1201         viewing type annotations. So, while viewing a minified file, 
1202         if you press the type profiling button, the pretty printer will 
1203         first reformat the file, then the type profiler will insert type annotations.
1204
1205         2. If the type profiler is enabled and we're viewing a pretty 
1206         printed file that we think originally was minified, and the 
1207         pretty printer is disabled via pressing the button, then the 
1208         type profiler will also be disabled.
1209
1210         These two behaviors maintain a good user experience because 
1211         it prevents a bad visual representation of profiler data and 
1212         also prevents bad performance.
1213
1214         * UserInterface/Controllers/TypeTokenAnnotator.js:
1215         (WebInspector.TypeTokenAnnotator.prototype.toggleTypeAnnotations): Deleted.
1216         * UserInterface/Views/SourceCodeTextEditor.js:
1217         (WebInspector.SourceCodeTextEditor):
1218         (WebInspector.SourceCodeTextEditor.prototype.shown):
1219         (WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
1220         (WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
1221         (WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
1222         (WebInspector.SourceCodeTextEditor.prototype._contentWillPopulate):
1223         (WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
1224         (WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
1225
1226 2015-01-22  Jonathan Wells  <jonowells@apple.com>
1227
1228         Web Inspector: ResourceContentView.js incorrectly contains call to WebInspector.UIString with a variable parameter
1229         https://bugs.webkit.org/show_bug.cgi?id=140268
1230
1231         Reviewed by Timothy Hatcher.
1232
1233         UIString no longer incorrectly used around variables. Drive-by fixes to prototype inheritance style.
1234         Use of Promises corrected such that requesting content for a resource resolves rather than rejects if
1235         a resource can't be found or has another error that isn't a web inspector error.
1236
1237         * Localizations/en.lproj/localizedStrings.js: Updated.
1238         * UserInterface/Models/Resource.js: Change reject to resolve.
1239         * UserInterface/Models/Script.js:
1240         (WebInspector.Script.prototype.requestContentFromBackend): Proper use of Error object.
1241         * UserInterface/Models/SourceCode.js: Use correct inheritance style.
1242         * UserInterface/Views/ResourceContentView.js:
1243         (WebInspector.ResourceContentView.prototype._contentAvailable): Handle error now that promise resolves.
1244         (WebInspector.ResourceContentView.prototype._contentError): Remove incorrect use of UIString.
1245         * UserInterface/Views/SourceCodeTextEditor.js:
1246         (WebInspector.SourceCodeTextEditor.prototype._contentAvailable): Handle error now that promise resolves.
1247
1248 2015-01-22  Nikita Vasilyev  <nvasilyev@apple.com>
1249
1250         Web Inspector: Expected gutter highlight when selecting console input line, just like output line
1251         https://bugs.webkit.org/show_bug.cgi?id=140696
1252
1253         Reviewed by Timothy Hatcher.
1254
1255         * UserInterface/Views/LogContentView.css:
1256
1257 2015-01-21  Saam Barati  <saambarati1@gmail.com>
1258
1259         Web Inspector: Change Annotator's isActive getter into an isActive() function.
1260         https://bugs.webkit.org/show_bug.cgi?id=140729
1261
1262         Reviewed by Timothy Hatcher.
1263
1264         This patch also makes the child classes of Annotator use
1265         the function instead of accessing the property directly.
1266
1267         * UserInterface/Controllers/Annotator.js:
1268         (WebInspector.Annotator.prototype.isActive):
1269         (WebInspector.Annotator.prototype.get isActive): Deleted.
1270         * UserInterface/Controllers/BasicBlockAnnotator.js:
1271         (WebInspector.BasicBlockAnnotator.prototype.insertAnnotations):
1272         * UserInterface/Controllers/TypeTokenAnnotator.js:
1273         (WebInspector.TypeTokenAnnotator.prototype.toggleTypeAnnotations):
1274         * UserInterface/Views/SourceCodeTextEditor.js:
1275         (WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
1276         (WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
1277         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
1278         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
1279         (WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
1280
1281 2015-01-21  Saam Barati  <saambarati1@gmail.com>
1282
1283         Web Inspector: Don't allow the BasicBlockAnnotator to highlight a section if it's only a closing brace
1284         https://bugs.webkit.org/show_bug.cgi?id=140727
1285
1286         Reviewed by Timothy Hatcher.
1287
1288         * UserInterface/Controllers/BasicBlockAnnotator.js:
1289         (WebInspector.BasicBlockAnnotator.prototype.set _highlightTextForBasicBlock):
1290         (WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyClosingBrace):
1291         BasicBlockAnnotator tries to no longer highlight a basic block if it is only
1292         whitespace and a closing brace. These ranges are often after statements
1293         that make these basic blocks unreachable, such as a return/break/continue
1294         statement occurring inside a if/else/while/for block. This check won't
1295         match every highlighted empty closing brace, but catches most of them 
1296         because it only does intra block analysis instead of inter block analysis.
1297
1298 2015-01-20  Joseph Pecoraro  <pecoraro@apple.com>
1299
1300         Web Inspector: Use spread operator in a few places
1301         https://bugs.webkit.org/show_bug.cgi?id=140699
1302
1303         Reviewed by Geoffrey Garen.
1304
1305         * UserInterface/Controllers/ProbeManager.js:
1306         (WebInspector.ProbeManager.prototype.get probeSets):
1307         Simplify by using the spread operator.
1308
1309         * UserInterface/Models/TimelineRecording.js:
1310         This actually fixes an issue. The one place this was used was expecting
1311         an array and called ".length" on the result. However, the iterator being
1312         returned does not have a ".length" property so it was always undefined.
1313
1314 2015-01-20  Joseph Pecoraro  <pecoraro@apple.com>
1315
1316         Web Inspector: Expanding event objects in console shows undefined for most values, it should have real values
1317         https://bugs.webkit.org/show_bug.cgi?id=137306
1318
1319         Reviewed by Timothy Hatcher.
1320
1321         When first expanding an object, show all the object's own properties and any
1322         getter properties that may be on its prototype chain. Now, we only fetch
1323         own properties, for __proto__ properties.
1324
1325         * UserInterface/Protocol/RemoteObject.js:
1326         (WebInspector.RemoteObject.prototype.getOwnProperties):
1327         (WebInspector.RemoteObject.prototype.getOwnAndGetterProperties):
1328         (WebInspector.RemoteObject.prototype.getAllProperties):
1329         (WebInspector.RemoteObject.prototype.get hasChildren): Deleted.
1330         * UserInterface/Views/ObjectPropertiesSection.js:
1331         (WebInspector.ObjectPropertiesSection):
1332         (WebInspector.ObjectPropertiesSection.prototype.update):
1333         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
1334
1335 2015-01-20  Joseph Pecoraro  <pecoraro@apple.com>
1336
1337         Web Inspector: Should show dynamic specificity values
1338         https://bugs.webkit.org/show_bug.cgi?id=140647
1339
1340         Reviewed by Benjamin Poulain.
1341
1342         For dynamic selectors, provide text in the tooltip describing that the
1343         specificity is dynamic and may change, and pointing out the element
1344         the current value was calculated against.
1345
1346         * Localizations/en.lproj/localizedStrings.js:
1347         * UserInterface/Models/CSSSelector.js:
1348         (WebInspector.CSSSelector):
1349         (WebInspector.CSSSelector.prototype.get specificity):
1350         (WebInspector.CSSSelector.prototype.get dynamic):
1351         * UserInterface/Models/DOMNodeStyles.js:
1352         (WebInspector.DOMNodeStyles.prototype._parseSelectorListPayload.return):
1353         (WebInspector.DOMNodeStyles.prototype._parseSelectorListPayload):
1354         * UserInterface/Views/CSSStyleDeclarationSection.js:
1355         (WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
1356
1357 2015-01-19  Saam Barati  <saambarati1@gmail.com>
1358
1359         Web Inspector: Provide a front end for JSC's Control Flow Profiler
1360         https://bugs.webkit.org/show_bug.cgi?id=138454
1361
1362         Reviewed by Timothy Hatcher.
1363
1364         This patch creates a user interface for JSC's control flow profiler.
1365         The Web Inspector gets basic block ranges from JSC, and displays
1366         basic blocks that have not executed as having a gray background.
1367         
1368         BasicBlockAnnotator is the class responsible for this UI logic.
1369         It also does a few nifty things when presenting a UI for this gray
1370         background color: if an entire line of code is within the basic 
1371         block's boundary, the annotator will not just highlight the background 
1372         behind the text, but the background of the entire line itself. This
1373         provides a nicer experience when glancing through large JavaScript files.
1374
1375         This patch also adds some necessary wrapper methods inside TextEditor
1376         for accessing CodeMirror's text highlighting functionality. It also
1377         creates a way for TextEditor and SourceCodeTextEditor to listen
1378         for focus events inside CodeMirror.
1379
1380         * UserInterface/Controllers/AnnotatorManager.js: Removed.
1381         * UserInterface/Controllers/BasicBlockAnnotator.js: Added.
1382         (WebInspector.BasicBlockAnnotator):
1383         (WebInspector.BasicBlockAnnotator.prototype.clearAnnotations):
1384         (WebInspector.BasicBlockAnnotator.prototype.insertAnnotations):
1385         (WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges.):
1386         (WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):
1387         (WebInspector.BasicBlockAnnotator.prototype.set _highlightTextForBasicBlock):
1388         (WebInspector.BasicBlockAnnotator.prototype._isTextRangeOnlyWhitespace):
1389         (WebInspector.BasicBlockAnnotator.prototype._canGrayOutEntireLine):
1390         (WebInspector.BasicBlockAnnotator.prototype._grayOutLine):
1391         (WebInspector.BasicBlockAnnotator.prototype._clearRangeForBasicBlockMarker.get marker):
1392         (WebInspector.BasicBlockAnnotator.prototype._clearRangeForBasicBlockMarker):
1393         * UserInterface/Main.html:
1394         * UserInterface/Views/SourceCodeTextEditor.css:
1395         (.basic-block-has-not-executed):
1396         (.basic-block-has-not-executed-prepend::before):
1397         * UserInterface/Views/SourceCodeTextEditor.js:
1398         (WebInspector.SourceCodeTextEditor):
1399         (WebInspector.SourceCodeTextEditor.prototype.shown):
1400         (WebInspector.SourceCodeTextEditor.prototype.hidden):
1401         (WebInspector.SourceCodeTextEditor.prototype.canShowTypeAnnotations):
1402         (WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
1403         (WebInspector.SourceCodeTextEditor.prototype.gainedFocus):
1404         (WebInspector.SourceCodeTextEditor.prototype.lostFocus):
1405         (WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
1406         (WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
1407         (WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
1408         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
1409         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
1410         (WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
1411         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenAnnotator):
1412         (WebInspector.SourceCodeTextEditor.prototype._makeBasicBlockAnnotator):
1413         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
1414         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
1415         * UserInterface/Views/TextEditor.js:
1416         (WebInspector.TextEditor):
1417         (WebInspector.TextEditor.prototype.getTextInRange):
1418         (WebInspector.TextEditor.prototype.addStyleToTextRange):
1419         (WebInspector.TextEditor.prototype.gainedFocus):
1420         (WebInspector.TextEditor.prototype.lostFocus):
1421
1422 2015-01-16  Nikita Vasilyev  <nvasilyev@apple.com>
1423
1424         Web Inspector: Make message selection in the console more readable
1425         https://bugs.webkit.org/show_bug.cgi?id=140385
1426
1427         Reviewed by Timothy Hatcher.
1428
1429         * UserInterface/Views/LogContentView.css:
1430         (.console-item.selected):
1431         (.console-messages:focus .console-item.selected):
1432         (.console-item.selected .console-message::after):
1433         (.console-messages:focus .console-item.selected .console-message::after):
1434         (.console-messages:focus .console-item.selected .go-to-link):
1435         * UserInterface/Views/Main.css:
1436         (.go-to-link):
1437         !important statements seem to be unnecessary, remove them.
1438
1439 2015-01-16  Joseph Pecoraro  <pecoraro@apple.com>
1440
1441         Web Inspector: Remove unused WebInspector.LocalJSONObject
1442         https://bugs.webkit.org/show_bug.cgi?id=140570
1443
1444         Reviewed by Timothy Hatcher.
1445
1446         * UserInterface/Protocol/RemoteObject.js:
1447         (WebInspector.RemoteObject.fromLocalObject): Deleted.
1448         (WebInspector.LocalJSONObject): Deleted.
1449         (WebInspector.LocalJSONObject.prototype.get description.switch.case.string_appeared_here): Deleted.
1450         (WebInspector.LocalJSONObject.prototype.get description.switch.default): Deleted.
1451         (WebInspector.LocalJSONObject.prototype.get description): Deleted.
1452         (WebInspector.LocalJSONObject.prototype._concatenate): Deleted.
1453         (WebInspector.LocalJSONObject.prototype.get type): Deleted.
1454         (WebInspector.LocalJSONObject.prototype.get subtype): Deleted.
1455         (WebInspector.LocalJSONObject.prototype.get hasChildren): Deleted.
1456         (WebInspector.LocalJSONObject.prototype.getOwnProperties): Deleted.
1457         (WebInspector.LocalJSONObject.prototype.getAllProperties): Deleted.
1458         (WebInspector.LocalJSONObject.prototype._children.buildProperty): Deleted.
1459         (WebInspector.LocalJSONObject.prototype._children): Deleted.
1460         (WebInspector.LocalJSONObject.prototype.isError): Deleted.
1461
1462 2015-01-15  Joseph Pecoraro  <pecoraro@apple.com>
1463
1464         Web Inspector: Uncaught exceptions, attempting to dispatch unimplemented Network WebSocket methods
1465         https://bugs.webkit.org/show_bug.cgi?id=140532
1466
1467         Reviewed by Timothy Hatcher.
1468
1469         * UserInterface/Protocol/NetworkObserver.js:
1470         (WebInspector.NetworkObserver.prototype.webSocketFrameReceived):
1471         (WebInspector.NetworkObserver.prototype.webSocketFrameError):
1472         (WebInspector.NetworkObserver.prototype.webSocketFrameSent):
1473         Add stubs to prevent an exception when trying to dispatch the event.
1474
1475 2015-01-15  Joseph Pecoraro  <pecoraro@apple.com>
1476
1477         Web Inspector: Reopening the inspector can selects a sub-frame instead of the Main Frame's DOM
1478         https://bugs.webkit.org/show_bug.cgi?id=140513
1479
1480         Reviewed by Timothy Hatcher.
1481
1482         * UserInterface/Models/Frame.js:
1483         (WebInspector.Frame.prototype.saveIdentityToCookie):
1484         Specifically identify the main frame, so that any sub-frames with the same
1485         URL, don't get choosen over the main frame when restoring state from cookie.
1486
1487 2015-01-15  Joseph Pecoraro  <pecoraro@apple.com>
1488
1489         Web Inspector: selecting Paint timeline records from sidebar does not trigger preview of paint quad
1490         https://bugs.webkit.org/show_bug.cgi?id=139151
1491
1492         Reviewed by Brian Burg.
1493
1494         * UserInterface/Views/LayoutTimelineDataGrid.js:
1495         (WebInspector.LayoutTimelineDataGrid):
1496         (WebInspector.LayoutTimelineDataGrid.prototype.callFramePopoverAnchorElement):
1497         (WebInspector.LayoutTimelineDataGrid.prototype.reset): Deleted.
1498         (WebInspector.LayoutTimelineDataGrid.prototype.hidden): Deleted.
1499         (WebInspector.LayoutTimelineDataGrid.prototype._layoutDataGridSelectedNodeChanged): Deleted.
1500         (WebInspector.LayoutTimelineDataGrid.prototype._hideHighlightIfNeeded): Deleted.
1501         Move the node highlight from the datagrid to the timeline view because
1502         we want this to happen on both the Navigation sidebar and the datagrid.
1503
1504         * UserInterface/Views/LayoutTimelineView.js:
1505         (WebInspector.LayoutTimelineView.prototype.shown):
1506         (WebInspector.LayoutTimelineView.prototype.hidden):
1507         (WebInspector.LayoutTimelineView.prototype.filterDidChange):
1508         (WebInspector.LayoutTimelineView.prototype.reset):
1509         (WebInspector.LayoutTimelineView.prototype._treeElementDeselected):
1510         (WebInspector.LayoutTimelineView.prototype._treeElementSelected):
1511         Update the highlight for major view updates.
1512
1513         (WebInspector.LayoutTimelineView.prototype._updateHighlight):
1514         (WebInspector.LayoutTimelineView.prototype._showHighlightForRecord):
1515         (WebInspector.LayoutTimelineView.prototype._hideHighlightIfNeeded):
1516         (WebInspector.LayoutTimelineView.prototype._hoveredOrSelectedRecord):
1517         Show a highlight for what we are hovering, or what is selected.
1518         Note the selected node may not be visible due to filtering.
1519
1520         (WebInspector.LayoutTimelineView.prototype._mouseOverDataGrid):
1521         (WebInspector.LayoutTimelineView.prototype._mouseLeaveDataGrid):
1522         (WebInspector.LayoutTimelineView.prototype._mouseOverTreeOutline):
1523         (WebInspector.LayoutTimelineView.prototype._mouseLeaveTreeOutline):
1524         Update hovered information mousing over the datagrid and tree outline.
1525
1526         * UserInterface/Views/TimelineContentView.js:
1527         (WebInspector.TimelineContentView.prototype.filterDidChange):
1528         * UserInterface/Views/TimelineSidebarPanel.js:
1529         (WebInspector.TimelineSidebarPanel.prototype.updateFilter):
1530         * UserInterface/Views/TimelineView.js:
1531         (WebInspector.TimelineView.prototype.filterDidChange):
1532         Include a "filterDidChange" TimelineView method that gets called after
1533         updateFilter (things like the filter bar or timeline range changes).
1534
1535         * UserInterface/Views/TreeOutline.js:
1536         (TreeOutline.prototype.treeElementFromNode):
1537         (TreeOutline.prototype.treeElementFromPoint):
1538         Provide a helper to get a tree element from an event target.
1539
1540 2015-01-13  Joseph Pecoraro  <pecoraro@apple.com>
1541
1542         Web Inspector: TextEditor doesn't update when resizing console, white space instead of content
1543         https://bugs.webkit.org/show_bug.cgi?id=140240
1544
1545         Reviewed by Timothy Hatcher.
1546
1547         * UserInterface/Base/Main.js:
1548         (WebInspector._consoleResizerMouseDown.dockedResizerDrag):
1549         Dispatch the event that signals the console has changed size.
1550
1551 2015-01-13  Joseph Pecoraro  <pecoraro@apple.com>
1552
1553         Web Inspector: I do not expect to see the same rule multiple times in styles sidebar
1554         https://bugs.webkit.org/show_bug.cgi?id=138185
1555
1556         Reviewed by Timothy Hatcher.
1557
1558         In the styles sidebar, don't show a duplicate, lesser-specificity rule even
1559         if it matches the selected element multiple times with different selectors
1560         in the list.
1561
1562         * UserInterface/Models/CSSRule.js:
1563         (WebInspector.CSSRule.prototype.isEqualTo):
1564         CSSRule identifiers are objects.
1565
1566         * UserInterface/Views/RulesStyleDetailsPanel.js:
1567         (WebInspector.RulesStyleDetailsPanel.prototype.refresh):
1568         Remove duplicates from the ordered list of style declarations.
1569
1570 2015-01-12  Jonathan Wells  <jonowells@apple.com>
1571
1572         Web Inspector: Timeline: when Network Requests view is selected, in progress requests are absent.
1573         https://bugs.webkit.org/show_bug.cgi?id=140090
1574
1575         Reviewed by Timothy Hatcher.
1576
1577         TimelineContentView#_updateTimes() changed to call WebInspector.timelineSidebarPanel.updateFilter() in addition
1578         to updating the layout of the current timeline view. TimelineSidebarPanel.updateFilter() now responsible for
1579         updating filtered resources in a TimelineView.
1580
1581         * UserInterface/Views/NavigationSidebarPanel.js:
1582         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
1583         Now handles updating the UI associated with filtering of navigation sidebar tree elements.
1584
1585         * UserInterface/Views/OverviewTimelineView.js:
1586         (WebInspector.OverviewTimelineView.prototype.updateLayout):
1587         No longer handles updating other UI along with the navigation sidebar tree elements. That is now handled by
1588         WebInspector.TimelineView.prototype.filterUpdated.
1589         (WebInspector.OverviewTimelineView.prototype._compareTreeElementsByDetails): Drive-by fix. Missing vars.
1590
1591         * UserInterface/Views/TimelineContentView.js:
1592         (WebInspector.TimelineContentView.prototype._updateTimes): Add call to updateFilter().
1593
1594         * UserInterface/Views/TimelineView.js:
1595         (WebInspector.TimelineView.prototype.filterUpdated):
1596         Function added to dispatch a SelectionPathComponentsDidChange event.
1597
1598 2015-01-09  Enrica Casucci  <enrica@apple.com>
1599
1600         [iOS] Support additional text styles.
1601         https://bugs.webkit.org/show_bug.cgi?id=140310
1602         rdar://problem/18568864
1603
1604         Reviewed by Joseph Pecoraro.
1605
1606         Add support for three new text styles.
1607
1608         * UserInterface/Models/CSSKeywordCompletions.js:
1609
1610 2015-01-09  Timothy Hatcher  <timothy@apple.com>
1611
1612         Web Inspector: REGRESSION: Navigation sidebar can show blank next to the Console view
1613         https://bugs.webkit.org/show_bug.cgi?id=140291
1614
1615         Reviewed by Joseph Pecoraro.
1616
1617         * UserInterface/Base/Main.js:
1618         (WebInspector.contentLoaded): Don't restore collapsed false if selectedSidebarPanel is null.
1619         (WebInspector._sidebarCollapsedStateDidChange): Support a _ignoreNavigationSidebarPanelCollapsedEvent flag
1620         to avoid setting _navigationSidebarCollapsedSetting.
1621         (WebInspector._navigationSidebarPanelSelected): Force collapsed if selectedSidebarPanel is null.
1622         (WebInspector._contentBrowserCurrentContentViewDidChange): Set _ignoreNavigationSidebarPanelCollapsedEvent
1623         when forcing the collapsed state to avoid setting _navigationSidebarCollapsedSetting and calling
1624         _updateContentViewForCurrentNavigationSidebar.
1625
1626 2015-01-08  Nikita Vasilyev  <nvasilyev@apple.com>
1627
1628         Web Inspector: REGRESSION Showing debugger sidebar shouldn't change selected JS file
1629         https://bugs.webkit.org/show_bug.cgi?id=139526
1630
1631         Reviewed by Timothy Hatcher.
1632
1633         * UserInterface/Base/Main.js:
1634         (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar):
1635         When switching to Debugger, show last selected JS or HTML resource.
1636
1637         (WebInspector.showSplitConsole):
1638         (WebInspector.showFullHeightConsole):
1639         (WebInspector.toggleConsoleView):
1640         (WebInspector._sidebarCollapsedStateDidChange):
1641         (WebInspector._updateContentViewForCurrentNavigationSidebar):
1642         (WebInspector._navigationSidebarPanelSelected):
1643         (WebInspector._contentBrowserCurrentContentViewDidChange):
1644         (WebInspector._updateNavigationSidebarForCurrentContentView): Deleted.
1645         * UserInterface/Views/ApplicationCacheFrameContentView.js:
1646         (WebInspector.ApplicationCacheFrameContentView.prototype.get allowedNavigationSidebarPanels):
1647         * UserInterface/Views/CookieStorageContentView.js:
1648         (WebInspector.CookieStorageContentView.prototype.get allowedNavigationSidebarPanels):
1649         * UserInterface/Views/DOMStorageContentView.js:
1650         (WebInspector.DOMStorageContentView.prototype.get allowedNavigationSidebarPanels):
1651         * UserInterface/Views/DOMTreeContentView.js:
1652         (WebInspector.DOMTreeContentView.prototype.get allowedNavigationSidebarPanels):
1653         * UserInterface/Views/DatabaseContentView.js:
1654         (WebInspector.DatabaseContentView.prototype.get allowedNavigationSidebarPanels):
1655         * UserInterface/Views/DatabaseTableContentView.js:
1656         (WebInspector.DatabaseTableContentView.prototype.get allowedNavigationSidebarPanels):
1657         * UserInterface/Views/FontResourceContentView.js:
1658         (WebInspector.FontResourceContentView.prototype.get allowedNavigationSidebarPanels):
1659         * UserInterface/Views/FrameDOMTreeContentView.js:
1660         (WebInspector.FrameDOMTreeContentView.prototype.get allowedNavigationSidebarPanels):
1661         * UserInterface/Views/LogContentView.js:
1662         (WebInspector.LogContentView.prototype.get allowedNavigationSidebarPanels):
1663         * UserInterface/Views/ResourceClusterContentView.js:
1664         (WebInspector.ResourceClusterContentView.prototype.get allowedNavigationSidebarPanels):
1665         * UserInterface/Views/ResourceSidebarPanel.js:
1666         (WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView):
1667         (WebInspector.ResourceSidebarPanel.prototype.showMainFrame):
1668         * UserInterface/Views/Sidebar.js:
1669         (WebInspector.Sidebar.prototype.removeSidebarPanel):
1670         * UserInterface/Views/TimelineContentView.js:
1671         (WebInspector.TimelineContentView.prototype.get allowedNavigationSidebarPanels):
1672
1673 2015-01-08  Joseph Pecoraro  <pecoraro@apple.com>
1674
1675         Web Inspector: Phantom breakpoint appears on empty line after reload of minified file with a breakpoint
1676         https://bugs.webkit.org/show_bug.cgi?id=140276
1677
1678         Reviewed by Timothy Hatcher.
1679
1680         Styles being set on lines (e.g. breakpoint styles) before content loaded can
1681         carry forward with the empty line. It is safe for us to just remove all
1682         the styles from the intial empty line before we load the initial content.
1683
1684         * UserInterface/Views/TextEditor.js:
1685         (WebInspector.TextEditor.prototype.set string.update):
1686         (WebInspector.TextEditor.prototype.set string):
1687
1688 2015-01-08  Joseph Pecoraro  <pecoraro@apple.com>
1689
1690         Web Inspector: Pause Reason Improvements (Breakpoint, Debugger Statement, Pause on Next Statement)
1691         https://bugs.webkit.org/show_bug.cgi?id=138991
1692
1693         Reviewed by Timothy Hatcher.
1694
1695         * Localizations/en.lproj/localizedStrings.js:
1696         New UI strings for Pause Reasons.
1697
1698         * UserInterface/Controllers/DebuggerManager.js:
1699         (WebInspector.DebuggerManager.prototype.breakpointForIdentifier):
1700         Provide a way to get the breakpoint with an identifier.
1701
1702         * UserInterface/Images/PausedBreakpoint.svg: Added.
1703         * UserInterface/Images/gtk/PausedBreakpoint.svg: Added.
1704         Copy PseudoElement.svg icon and give it a new name.
1705
1706         * UserInterface/Views/BreakpointTreeElement.css:
1707         (.breakpoint-paused-icon .icon):
1708         New icon for a breakpoint causing a pause.
1709
1710         * UserInterface/Views/BreakpointTreeElement.js:
1711         (WebInspector.BreakpointTreeElement.prototype.removeStatusImage):
1712         (WebInspector.BreakpointTreeElement.prototype._updateStatus):
1713         Give API to remove the breakpoint status icon from a BreakpointTreeElement.
1714
1715         * UserInterface/Views/DebuggerSidebarPanel.js:
1716         (WebInspector.DebuggerSidebarPanel):
1717         (WebInspector.DebuggerSidebarPanel.prototype.get hasSelectedElement):
1718         (WebInspector.DebuggerSidebarPanel.prototype.deselectBreakpointContentTreeElements):
1719         (WebInspector.DebuggerSidebarPanel.prototype.deselectPauseReasonContentTreeElements):
1720         (WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected):
1721         Give DebuggerSidebarPanel an optional pause reason tree outline. When available
1722         include it in the pattern of ensuring a single exclusive selection.
1723
1724         (WebInspector.DebuggerSidebarPanel.prototype._breakpointRemoved):
1725         When a breakpoint is removed, check if we should update the pause reason tree outline.
1726
1727         (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReason):
1728         (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
1729         Update Pause Reason section contents depending on the reason.
1730
1731         (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonGotoArrow):
1732         Always try to include a goto arrow to jump to the original pause location
1733         if it is available at the time of pausing.
1734
1735 2015-01-08  Joseph Pecoraro  <pecoraro@apple.com>
1736
1737         Web Inspector: Expected UserAgent styles to be crossed-out if overridden
1738         https://bugs.webkit.org/show_bug.cgi?id=140154
1739
1740         Reviewed by Timothy Hatcher.
1741
1742         * UserInterface/Models/DOMNodeStyles.js:
1743         (WebInspector.DOMNodeStyles.prototype._parseStylePropertyPayload):
1744         Add a comment about anonymous styles. The getter is no longer used, and it is not
1745         clear if we really care about this state, or if "anonymous" is an appropriate name.
1746
1747         (WebInspector.DOMNodeStyles.prototype._markOverriddenProperties):
1748         Allow browser styles (user agent / html attributes) to be overridden.
1749
1750         (WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
1751         When refreshing styles after changes, the Style object backing HTML attributes
1752         was being completely replaced. Allow it to be remembered by a unique key.
1753
1754 2015-01-07  Joseph Pecoraro  <pecoraro@apple.com>
1755
1756         Web Inspector: Do not create rulesMap entries for rules without identifiers
1757         https://bugs.webkit.org/show_bug.cgi?id=140237
1758
1759         Reviewed by Timothy Hatcher.
1760
1761         * UserInterface/Models/DOMNodeStyles.js:
1762         (WebInspector.DOMNodeStyles.prototype._parseRulePayload):
1763         We were accidentally converting a null into a string with a loose string
1764         concatenation. Only do this if the mapKey is not-null.
1765
1766 2015-01-07  Saam Barati  <saambarati1@gmail.com>
1767
1768         Web Inspector: Abstract common functions from TypeTokenAnnotator into a parent class and introduce an AnnotatorManager
1769         https://bugs.webkit.org/show_bug.cgi?id=139426
1770
1771         Reviewed by Timothy Hatcher.
1772
1773         This patch creates a parent class, Annotator, that TypeTokenAnnotator
1774         inherits from. Annotator defines a common set of functionality
1775         that a text editor annotator can use to mark up UI. This 
1776         is in preparation other classes that will inherit from Annotator.
1777         
1778         This patch also introduces AnnotatorManager which controls a
1779         set of Annotators and provides a single interface for
1780         controlling them.
1781
1782         * UserInterface/Controllers/Annotator.js: Added.
1783         (WebInspector.Annotator):
1784         (WebInspector.Annotator.prototype.get sourceCodeTextEditor):
1785         (WebInspector.Annotator.prototype.get isActive):
1786         (WebInspector.Annotator.prototype.pause):
1787         (WebInspector.Annotator.prototype.resume):
1788         (WebInspector.Annotator.prototype.refresh):
1789         (WebInspector.Annotator.prototype.reset):
1790         (WebInspector.Annotator.prototype.clear):
1791         (WebInspector.Annotator.prototype.insertAnnotations):
1792         (WebInspector.Annotator.prototype.clearAnnotations):
1793         (WebInspector.Annotator.prototype._clearTimeoutIfNeeded):
1794         * UserInterface/Controllers/AnnotatorManager.js: Added.
1795         (WebInspector.AnnotatorManager):
1796         (WebInspector.AnnotatorManager.prototype.addAnnotator):
1797         (WebInspector.AnnotatorManager.prototype.isAnnotatorActive):
1798         (WebInspector.AnnotatorManager.prototype.pauseAll):
1799         (WebInspector.AnnotatorManager.prototype.resumeAll):
1800         (WebInspector.AnnotatorManager.prototype.refreshAllIfActive):
1801         (WebInspector.AnnotatorManager.prototype.resetAllIfActive):
1802         (WebInspector.AnnotatorManager.prototype.clearAll):
1803         (WebInspector.AnnotatorManager.prototype.removeAllAnnotators):
1804         (WebInspector.AnnotatorManager.prototype._getAnnotators):
1805         * UserInterface/Controllers/TypeTokenAnnotator.js:
1806         (WebInspector.TypeTokenAnnotator):
1807         (WebInspector.TypeTokenAnnotator.prototype.insertAnnotations.):
1808         (WebInspector.TypeTokenAnnotator.prototype.clearAnnotations):
1809         (WebInspector.TypeTokenAnnotator.prototype._insertToken):
1810         (WebInspector.TypeTokenAnnotator.prototype.get isActive): Deleted.
1811         (WebInspector.TypeTokenAnnotator.prototype.get sourceCodeTextEditor): Deleted.
1812         (WebInspector.TypeTokenAnnotator.prototype.pause): Deleted.
1813         (WebInspector.TypeTokenAnnotator.prototype.resume): Deleted.
1814         (WebInspector.TypeTokenAnnotator.prototype.refresh): Deleted.
1815         (WebInspector.TypeTokenAnnotator.prototype.reset): Deleted.
1816         (WebInspector.TypeTokenAnnotator.prototype._insertAnnotations.): Deleted.
1817         (WebInspector.TypeTokenAnnotator.prototype._clearTimeoutIfNeeded): Deleted.
1818         * UserInterface/Main.html:
1819         * UserInterface/Views/SourceCodeTextEditor.js:
1820         (WebInspector.SourceCodeTextEditor):
1821         (WebInspector.SourceCodeTextEditor.prototype.shown):
1822         (WebInspector.SourceCodeTextEditor.prototype.hidden):
1823         (WebInspector.SourceCodeTextEditor.prototype.canShowTypeAnnotations):
1824         (WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
1825         (WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
1826         (WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
1827         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
1828         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
1829         (WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
1830         (WebInspector.SourceCodeTextEditor.prototype._getAssociatedScript):
1831         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenAnnotator):
1832         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
1833         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
1834
1835 2015-01-06  Joseph Pecoraro  <pecoraro@apple.com>
1836
1837         Web Inspector: Do not style implicit CSS properties in the Style Rules section
1838         https://bugs.webkit.org/show_bug.cgi?id=140161
1839
1840         Reviewed by Timothy Hatcher.
1841
1842         Previously, implicit properties being transparent in the Rules section
1843         was confusing and not useful. Lets simplify what transparency means:
1844
1845             - Rules:  transparency means a non-inheritable property in an inherited rule
1846             - Computed: transparency means an implicit value
1847
1848         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1849         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.not-inherited):
1850         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.implicit, .not-inherited)): Deleted.
1851
1852 2015-01-06  Joseph Pecoraro  <pecoraro@apple.com>
1853
1854         Web Inspector: Uncaught Exception when dismissing Go To Line dialog
1855         https://bugs.webkit.org/show_bug.cgi?id=139663
1856
1857         Reviewed by Timothy Hatcher.
1858
1859         Calling removeChild would trigger the blur event handler and do a
1860         nested call of dismiss(), re-entering and removing while in the middle
1861         of removing. Avoid re-entrancy to avoid the exception.
1862
1863         * UserInterface/Views/GoToLineDialog.js:
1864         (WebInspector.GoToLineDialog):
1865         (WebInspector.GoToLineDialog.prototype.dismiss):
1866
1867 2015-01-01  Darin Adler  <darin@apple.com>
1868
1869         We often misspell identifier as "identifer"
1870         https://bugs.webkit.org/show_bug.cgi?id=140025
1871
1872         Reviewed by Michael Saboff.
1873
1874         * UserInterface/Base/Main.js:
1875         (WebInspector._updateNavigationSidebarForCurrentContentView):
1876         (WebInspector._contentBrowserCurrentContentViewDidChange):
1877         Fix misspellings.
1878
1879 2014-12-29  Jonathan Wells  <jonowells@apple.com>
1880
1881         Web Inspector: SourceCode.requestContent should return a promise
1882         https://bugs.webkit.org/show_bug.cgi?id=135777
1883
1884         Reviewed by Brian Burg.
1885
1886         Change SourceCode.js to request content from the backend using Promises. Change Resource.js to use this new
1887         approach when determining whether a resource load has finished. Change all calls to the older
1888         SourceCode#requestContentFromBackendIfNeeded to simply use requestContent and use a catch function
1889         if a content request error needs to be handled. Fix a bug where the appropriate error message for an
1890         invalid resource wasn't showing in the resource content view.
1891
1892         * UserInterface/Controllers/AnalyzerManager.js:
1893         (set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode.):
1894         (set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode):
1895         * UserInterface/Controllers/CSSStyleManager.js:
1896         (WebInspector.CSSStyleManager.prototype._updateResourceContent.fetchedStyleSheetContent):
1897         (WebInspector.CSSStyleManager.prototype._updateResourceContent.styleSheetReady):
1898         * UserInterface/Models/CSSStyleSheet.js:
1899         (WebInspector.CSSStyleSheet.prototype.requestContentFromBackend):
1900         (WebInspector.CSSStyleSheet.prototype.canRequestContentFromBackend): Deleted.
1901         * UserInterface/Models/DOMNodeStyles.js:
1902         (WebInspector.DOMNodeStyles.prototype.changeStyleText):
1903         * UserInterface/Models/Resource.js:
1904         (WebInspector.Resource.prototype.canRequestContent):
1905         (WebInspector.Resource.prototype.requestContentFromBackend):
1906         (WebInspector.Resource.prototype.markAsFinished):
1907         (WebInspector.Resource.prototype.markAsFailed):
1908         (WebInspector.Resource.prototype.getImageSize):
1909         (WebInspector.Resource.prototype.canRequestContentFromBackend): Deleted.
1910         * UserInterface/Models/Script.js:
1911         (WebInspector.Script.prototype.requestContentFromBackend):
1912         (WebInspector.Script.prototype.requestScriptSyntaxTree.catch):
1913         (WebInspector.Script.prototype.canRequestContentFromBackend): Deleted.
1914         * UserInterface/Models/SourceCode.js:
1915         (WebInspector.SourceCode):
1916         (WebInspector.SourceCode.prototype.requestContent):
1917         (WebInspector.SourceCode.prototype.requestContentFromBackend):
1918         (WebInspector.SourceCode.prototype._processContent):
1919         (WebInspector.SourceCode.prototype.canRequestContentFromBackend): Deleted.
1920         (WebInspector.SourceCode.prototype.requestContentFromBackendIfNeeded): Deleted.
1921         (WebInspector.SourceCode.prototype.servicePendingContentRequests): Deleted.
1922         * UserInterface/Models/SourceMapResource.js:
1923         (WebInspector.SourceMapResource):
1924         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoadError):
1925         (WebInspector.SourceMapResource.prototype.requestContentFromBackend):
1926         (WebInspector.SourceMapResource.prototype.canRequestContentFromBackend): Deleted.
1927         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded): Deleted.
1928         * UserInterface/Views/ResourceContentView.js:
1929         (WebInspector.ResourceContentView):
1930         (WebInspector.ResourceContentView.prototype._contentAvailable):
1931         (WebInspector.ResourceContentView.prototype._contentError):
1932         * UserInterface/Views/SourceCodeTextEditor.js:
1933         (WebInspector.SourceCodeTextEditor):
1934         (WebInspector.SourceCodeTextEditor.prototype._contentAvailable):
1935         (WebInspector.SourceCodeTextEditor.prototype._populateWithInlineScriptContent.scriptContentAvailable):
1936         (WebInspector.SourceCodeTextEditor.prototype._populateWithInlineScriptContent):
1937         (WebInspector.SourceCodeTextEditor.prototype._populateWithScriptContent):
1938
1939 2014-12-26  Dan Bernstein  <mitz@apple.com>
1940
1941         <rdar://problem/19348208> REGRESSION (r177027): iOS builds use the wrong toolchain
1942         https://bugs.webkit.org/show_bug.cgi?id=139950
1943
1944         Reviewed by David Kilzer.
1945
1946         * Configurations/Base.xcconfig: Only define TOOLCHAINS when building for OS X, doing so
1947         in a manner that works with Xcode 5.1.1.
1948
1949 2014-12-20  David Kilzer  <ddkilzer@apple.com>
1950
1951         Switch from using PLATFORM_NAME to SDK selectors in WebCore, WebInspectorUI, WebKit, WebKit2
1952         <http://webkit.org/b/139463>
1953
1954         Reviewed by Mark Rowe.
1955
1956         * Configurations/Base.xcconfig:
1957         - Only set TOOLCHAINS on OS X.
1958         * Configurations/DebugRelease.xcconfig:
1959         - Only set MACOSX_DEPLOYMENT_TARGET and SDKROOT on OS X.
1960         * Configurations/Version.xcconfig:
1961         - Set SYSTEM_VERSION_PREFIX separately for iOS and OS X.
1962         * Configurations/WebInspectorUIFramework.xcconfig:
1963         - Set NORMAL_PRODUCTION_FRAMEWORKS_DIR,
1964           PRODUCTION_FRAMEWORKS_DIR and
1965           JAVASCRIPTCORE_PRIVATE_HEADERS_DIR_Production by SDK.
1966
1967 2014-12-19  Commit Queue  <commit-queue@webkit.org>
1968
1969         Unreviewed, rolling out r177574.
1970         https://bugs.webkit.org/show_bug.cgi?id=139821
1971
1972         "Broke Production builds by installing
1973         libWebCoreTestSupport.dylib in the wrong directory" (Requested
1974         by ddkilzer on #webkit).
1975
1976         Reverted changeset:
1977
1978         "Switch from using PLATFORM_NAME to SDK selectors in WebCore,
1979         WebInspectorUI, WebKit, WebKit2"
1980         https://bugs.webkit.org/show_bug.cgi?id=139463
1981         http://trac.webkit.org/changeset/177574
1982
1983 2014-12-19  David Kilzer  <ddkilzer@apple.com>
1984
1985         Switch from using PLATFORM_NAME to SDK selectors in WebCore, WebInspectorUI, WebKit, WebKit2
1986         <http://webkit.org/b/139463>
1987
1988         Reviewed by Mark Rowe.
1989
1990         * Configurations/Base.xcconfig:
1991         - Only set TOOLCHAINS on OS X.
1992         * Configurations/DebugRelease.xcconfig:
1993         - Only set MACOSX_DEPLOYMENT_TARGET and SDKROOT on OS X.
1994         * Configurations/Version.xcconfig:
1995         - Set SYSTEM_VERSION_PREFIX separately for iOS and OS X.
1996         * Configurations/WebInspectorUIFramework.xcconfig:
1997         - Set NORMAL_PRODUCTION_FRAMEWORKS_DIR,
1998           PRODUCTION_FRAMEWORKS_DIR and
1999           JAVASCRIPTCORE_PRIVATE_HEADERS_DIR_Production by SDK.
2000
2001 2014-12-16  Matt Baker  <mattbaker@apple.com>
2002
2003         Web Inspector: REGRESSION: Dragging undocked web inspector causes mouse to change from pointer to i-bar cursor over window title
2004         https://bugs.webkit.org/show_bug.cgi?id=139720
2005
2006         Reviewed by Timothy Hatcher.
2007
2008         * UserInterface/Base/Main.js:
2009         Prevent default handling of the mouse event when clicking in the titlebar area. WebCore won't continue handling the event,
2010         but docking buttons/context menu still function.
2011
2012 2014-12-15  Nikita Vasilyev  <nvasilyev@apple.com>
2013
2014         Web Inspector: Clicking on the expand object arrow should always expand an object
2015         https://bugs.webkit.org/show_bug.cgi?id=139382
2016
2017         Reviewed by Joseph Pecoraro.
2018
2019         * UserInterface/Views/LogContentView.js:
2020         (WebInspector.LogContentView):
2021         (WebInspector.LogContentView.prototype._click): Deleted.
2022         stopPropagation was preventing the object expansion from happening as expecting.
2023
2024 2014-12-15  Joseph Pecoraro  <pecoraro@apple.com>
2025
2026         Web Inspector: CSSStyleDeclarationTextEditor fails to update if computed properties changed from empty to non-empty
2027         https://bugs.webkit.org/show_bug.cgi?id=139610
2028
2029         Reviewed by Timothy Hatcher.
2030
2031         The CSSStyleDeclarationTextEditor for Computed Style Properties always has
2032         empty DOMNodeStyles text. However we would not reset contents if properties
2033         changed and the actualy content was empty. So once empty, we could never
2034         recover. In fact, we should always refresh for Computed Styles.
2035
2036         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2037         (WebInspector.CSSStyleDeclarationTextEditor.prototype._propertiesChanged):
2038
2039 2014-12-08  Joseph Pecoraro  <pecoraro@apple.com>
2040
2041         Web Inspector: Hide Compositing Borders Button if backend returns an error that it is unsupported
2042         https://bugs.webkit.org/show_bug.cgi?id=139307
2043
2044         Reviewed by Darin Adler.
2045
2046         * UserInterface/Views/DOMTreeContentView.js:
2047         (WebInspector.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings):
2048
2049 2014-12-05  Joseph Pecoraro  <pecoraro@apple.com>
2050
2051         Web Inspector: Uncaught Exceptions when attempting to show Content Flow
2052         https://bugs.webkit.org/show_bug.cgi?id=139276
2053
2054         Reviewed by Brian Burg.
2055
2056         * UserInterface/Views/ContentView.js:
2057         (WebInspector.ContentView):
2058         (WebInspector.ContentView.isViewable):
2059         LegacyJavaScriptProfileObject no longer exists, these references should be removed.
2060
2061         * UserInterface/Views/FolderizedTreeElement.js:
2062         (WebInspector.FolderizedTreeElement.prototype._insertChildTreeElement):
2063         This sort function references "this" and needed to be bound.
2064
2065 2014-12-04  Joseph Pecoraro  <pecoraro@apple.com>
2066
2067         Web Inspector: Network Timeline Filter Bar only has "All", missing Resource Type filters
2068         https://bugs.webkit.org/show_bug.cgi?id=139268
2069
2070         Reviewed by Brian Burg.
2071
2072         * UserInterface/Views/TimelineDataGrid.js:
2073         (WebInspector.TimelineDataGrid.createColumnScopeBar):
2074         Users of createColumnScopeBar pass a Map object now instead of a dictionary.
2075         Iterate over the map appropriately.
2076
2077 2014-12-04  Joseph Pecoraro  <pecoraro@apple.com>
2078
2079         Web Inspector: LayoutTests/inspector tests fail in Production builds due to missing test resources
2080         https://bugs.webkit.org/show_bug.cgi?id=138898
2081
2082         Reviewed by Mark Rowe.
2083
2084         In Production builds, if FORCE_TOOL_INSTALL=YES is in the environment
2085         we will copy all resources (for Tests) and still do the combine and
2086         optimize phase for normal Production inspection resources.
2087
2088         * Scripts/copy-user-interface-resources.pl:
2089
2090 2014-12-03  Joseph Pecoraro  <pecoraro@apple.com>
2091
2092         Web Inspector: Missing getter, clients never see DragToAdjustController is enabled
2093         https://bugs.webkit.org/show_bug.cgi?id=139228
2094
2095         Reviewed by Simon Fraser.
2096
2097         * UserInterface/Controllers/DragToAdjustController.js:
2098         (WebInspector.DragToAdjustController.prototype.get enabled):
2099
2100 2014-12-02  Joseph Pecoraro  <pecoraro@apple.com>
2101
2102         Web Inspector: CSS Minification breaks some selectors with colons
2103         https://bugs.webkit.org/show_bug.cgi?id=139206
2104
2105         Reviewed by Simon Fraser.
2106
2107         Do not remove spaces preceeding colons, as they may change the semantics
2108         of selectors with colon prefixes (e.g. "a :not(b)").
2109
2110         At the same time, we can strip spaces around "!" characters, for example
2111         a space is not required before "!important" priority.
2112
2113         * Scripts/cssmin.py:
2114         (cssminify):
2115
2116 2014-12-01  Benjamin Poulain  <benjamin@webkit.org>
2117
2118         Web Inspector: add more :not() and :matches() awesomeness
2119         https://bugs.webkit.org/show_bug.cgi?id=138997
2120
2121         Reviewed by Joseph Pecoraro.
2122
2123         Simplify the Inspector's CSS when possible.
2124
2125         * UserInterface/Views/DatabaseContentView.css:
2126         (:matches(.database-user-query, .database-query-prompt, .database-query-result)::before):
2127         (.database-user-query::before, .database-query-prompt::before, .database-query-result::before): Deleted.
2128         * UserInterface/Views/GradientSlider.css:
2129         (.gradient-slider-knob > :matches(img, div)):
2130         (.gradient-slider-knob > div): Deleted.
2131         * UserInterface/Views/HoverMenu.css:
2132         (.hover-menu > svg > :matches(path, rect)):
2133         (.hover-menu > svg > rect): Deleted.
2134         * UserInterface/Views/LayerTreeDetailsSidebarPanel.css:
2135         (.panel.details.layer-tree .name-column :matches(.pseudo-element, .reflection)):
2136         (.panel.details.layer-tree tr.selected .name-column :matches(.pseudo-element, .reflection)):
2137         (.panel.details.layer-tree .name-column .reflection): Deleted.
2138         (.panel.details.layer-tree tr.selected .name-column .reflection): Deleted.
2139         * UserInterface/Views/ProbeDetailsSidebarPanel.css:
2140         (.details-section.probe-set .options > :matches(.probe-remove, .probe-clear-samples, .probe-add)):
2141         (.details-section.probe-set .options > .probe-add): Deleted.
2142         * UserInterface/Views/ResourceSidebarPanel.css:
2143         (.sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)):
2144         (body.mac-platform.legacy .sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)):
2145         (.sidebar > .panel.navigation.resource > .empty-content-placeholder): Deleted.
2146         (body.mac-platform.legacy .sidebar > .panel.navigation.resource > .empty-content-placeholder): Deleted.
2147         * UserInterface/Views/ScopeBar.css:
2148         (.scope-bar > li:matches(.selected, :active)):
2149         (.scope-bar > li:active): Deleted.
2150         * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
2151         (.syntax-highlighted :matches(.css-comment, .javascript-comment, .html-comment)):
2152         (.syntax-highlighted :matches(.css-keyword, .css-tag, .css-at-rule, .css-important, .javascript-keyword, .html-tag)):
2153         (.syntax-highlighted :matches(.css-number, .javascript-number)):
2154         (.syntax-highlighted :matches(.css-property, .css-selector, .javascript-ident)):
2155         (.syntax-highlighted :matches(.css-string, .javascript-string, .javascript-regexp, .html-attribute-value)):
2156         (.syntax-highlighted :matches(.html-doctype, .html-processing-instruction)):
2157         (.syntax-highlighted .html-comment): Deleted.
2158         (.syntax-highlighted .html-tag): Deleted.
2159         (.syntax-highlighted .javascript-number): Deleted.
2160         (.syntax-highlighted .javascript-ident): Deleted.
2161         (.syntax-highlighted .html-attribute-value): Deleted.
2162         (.syntax-highlighted .html-processing-instruction): Deleted.
2163         It looks like ".cm-tag.cm-bracket" was there only to override the rule below.
2164         From basic testing, it looks like "cm-tag" and "cm-bracket" always appear together. I removed the "cm-bracket" rule
2165         from the second rule, and simplified the first rule.
2166
2167         * UserInterface/Views/TimelineSidebarPanel.css:
2168         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > :matches(.content, .empty-content-placeholder)):
2169         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .empty-content-placeholder): Deleted.
2170         * UserInterface/Views/Toolbar.css:
2171         (body.mac-platform:not(.legacy, .docked) .toolbar):
2172         (body.mac-platform:not(.legacy, .docked) .toolbar.icon-and-label-vertical):
2173         (body.mac-platform:not(.legacy, .docked) .toolbar.icon-and-label-vertical.small-size):
2174         (body.mac-platform:not(.legacy, .docked) .toolbar:matches(.icon-and-label-horizontal, .icon-only)):
2175         (body.mac-platform:not(.legacy, .docked) .toolbar:matches(.icon-and-label-horizontal.small-size, .icon-only.small-size, .label-only)):
2176         (.toolbar:matches(.icon-and-label-horizontal.small-size, .icon-only.small-size, .label-only) .control-section):
2177         (body.mac-platform:not(.legacy):not(.docked) .toolbar): Deleted.
2178         (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical): Deleted.
2179         (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical.small-size): Deleted.
2180         (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-only): Deleted.
2181         (body.mac-platform:not(.legacy):not(.docked) .toolbar.label-only): Deleted.
2182         (.toolbar.label-only .control-section): Deleted.
2183
2184 2014-11-27  Andres Gomez  <agomez@igalia.com>
2185
2186         Web Inspector: Update NavigationItemProbes icon for the GTK+ port
2187         https://bugs.webkit.org/show_bug.cgi?id=139074
2188
2189         Reviewed by Carlos Garcia Campos.
2190
2191         NavigationItemProbes was updated for the Mac port and we are now
2192         having a similar ideogram in GTK+.
2193
2194         * UserInterface/Images/gtk/NavigationItemProbes.svg: Updated.
2195
2196 2014-11-21  Benjamin Poulain  <bpoulain@apple.com>
2197
2198         Start using the new :not() and :matches() in the Web Inspector
2199         https://bugs.webkit.org/show_bug.cgi?id=138978
2200
2201         Reviewed by Joseph Pecoraro.
2202
2203         Start simpifying some definitions by using modern CSS.
2204
2205         * UserInterface/Views/CSSStyleDeclarationSection.css:
2206         (body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:matches(.last-in-group, :last-child)):
2207         (.style-declaration-section:matches(.locked, .selector-locked) > .header > .selector):
2208         (body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:last-child): Deleted.
2209         (.style-declaration-section.selector-locked > .header > .selector): Deleted.
2210         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
2211         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.disabled, .invalid, .other-vendor, .not-inherited, .overridden)):
2212         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property:matches(.implicit, .not-inherited)):
2213         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property:matches(.disabled, .other-vendor, .not-inherited, .overridden)):
2214         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.overridden): Deleted.
2215         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .css-style-declaration-property.not-inherited): Deleted.
2216         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .editing-line .css-style-declaration-property.overridden): Deleted.
2217         * UserInterface/Views/ControlToolbarItem.css:
2218         (.toolbar:matches(.icon-and-label-horizontal, .toolbar.icon-only) .item.control):
2219         (.toolbar.icon-only .item.control): Deleted.
2220         * UserInterface/Views/DOMStorageContentView.css:
2221         * UserInterface/Views/DashboardContainerView.css:
2222         (.toolbar.icon-and-label-vertical:matches(.small-size, .normal-size) .dashboard-container):
2223         (.toolbar:matches(.label-only, .small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal)) .dashboard-container):
2224         (.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container):
2225         (.toolbar.normal-size.icon-and-label-vertical .dashboard-container): Deleted.
2226         (.toolbar.small-size.icon-and-label-horizontal .dashboard-container): Deleted.
2227         (.toolbar.normal-size.icon-and-label-horizontal .dashboard-container): Deleted.
2228         * UserInterface/Views/DataGrid.css:
2229         (.data-grid :matches(th, td):not(:last-child)):
2230         (.data-grid th:matches(.sort-ascending, .sort-descending)):
2231         (.data-grid :matches(th, td) > div):
2232         (.data-grid th:matches(.sort-ascending, .sort-descending) > div:first-child):
2233         (.data-grid tr:matches(.selected, :hover) .go-to-arrow):
2234         (.data-grid :-webkit-any(th, td):not(:last-child)): Deleted.
2235         (.data-grid th:-webkit-any(.sort-ascending, .sort-descending)): Deleted.
2236         (.data-grid :-webkit-any(th, td) > div): Deleted.
2237         (.data-grid th:-webkit-any(.sort-ascending, .sort-descending) > div:first-child): Deleted.
2238         (.data-grid tr:-webkit-any(.selected, :hover) .go-to-arrow): Deleted.
2239         * UserInterface/Views/DebuggerDashboardView.css:
2240         (.toolbar.collapsed .dashboard.debugger > :not(.message, .navigation-bar )):
2241         (.toolbar.collapsed .dashboard.debugger > :not(.message):not(.navigation-bar )): Deleted.
2242         * UserInterface/Views/DefaultDashboardView.css:
2243         (body.web .toolbar.collapsed .dashboard.default > :matches(.time, .resourcesSize, .logs)):
2244         (body.javascript .toolbar .dashboard.default > :matches(.time, .resourcesSize, .resourcesCount)):
2245         (.toolbar:matches(.label-only, .small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal)) .dashboard.default > .item):
2246         (.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard.default > .item):
2247         (body.web .toolbar.collapsed .dashboard.default > .logs): Deleted.
2248         (body.javascript .toolbar .dashboard.default > .resourcesCount): Deleted.
2249         (.toolbar.small-size.icon-and-label-horizontal .dashboard.default > .item): Deleted.
2250         (.toolbar.normal-size.icon-and-label-horizontal .dashboard.default > .item): Deleted.
2251         * UserInterface/Views/DetailsSection.css:
2252         (.details-section > .header > :matches(.node-link, .go-to-arrow)):
2253         (.details-section > .content > .group:nth-child(even) > .row:matches(.simple:first-child > *, :not(.simple):first-child)):
2254         (body.mac-platform.legacy .details-section > .content > .group:matches(:nth-child(even), :last-child) > .row.simple:last-child > *):
2255         (.details-section > .content > .group > .row:matches(.empty, .text)):
2256         (body.mac-platform.legacy .details-section > .content > .group > .row:matches(.empty, .text)):
2257         (.details-section > .header > .go-to-arrow): Deleted.
2258         (.details-section > .content > .group:nth-child(even) > .row.simple:first-child > *): Deleted.
2259         (body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > *): Deleted.
2260         (.details-section > .content > .group > .row.text): Deleted.
2261         (body.mac-platform.legacy .details-section > .content > .group > .row.text): Deleted.
2262         * UserInterface/Views/FindBanner.css:
2263         (:matches(.find-banner, .supports-find-banner).no-find-banner-transition):
2264         (.supports-find-banner.no-find-banner-transition): Deleted.
2265         * UserInterface/Views/FlexibleSpaceNavigationItem.css:
2266         (:matches(.navigation-bar, .toolbar) .item.flexible-space):
2267         (.toolbar .item.flexible-space): Deleted.
2268
2269 2014-11-19  Joseph Pecoraro  <pecoraro@apple.com>
2270
2271         Web Inspector: LayoutTests/inspector should not have localStorage side effects
2272         https://bugs.webkit.org/show_bug.cgi?id=138895
2273
2274         Reviewed by Brian Burg.
2275
2276         When running inspector tests, do not restore/save WebInspector.Settings
2277         to localStorage, as that will cause side effects. Instead each Setting
2278         will be initialized with its default value and can be modified during
2279         the run of the test.
2280
2281         * UserInterface/Base/Test.js:
2282         (WebInspector.loaded):
2283         Name the setting to match the normal setting name now that persistence
2284         is not an issue.
2285
2286         * UserInterface/Models/Setting.js:
2287         (WebInspector.Setting.prototype.get value):
2288         (WebInspector.Setting.prototype.set value):
2289         Do not restore/save when in tests.
2290
2291 2014-11-19  Joseph Pecoraro  <pecoraro@apple.com>
2292
2293         Web Inspector: JSContext inspection Resource search does not work
2294         https://bugs.webkit.org/show_bug.cgi?id=131252
2295
2296         Reviewed by Timothy Hatcher.
2297
2298         * UserInterface/Views/ResourceSidebarPanel.js:
2299         (WebInspector.ResourceSidebarPanel.prototype.performSearch.resourceCallback):
2300         (WebInspector.ResourceSidebarPanel.prototype.performSearch.resourcesCallback):
2301         Cleanup by reordering things a bit.
2302
2303         (WebInspector.ResourceSidebarPanel.prototype.performSearch.searchScripts.scriptCallback):
2304         (WebInspector.ResourceSidebarPanel.prototype.performSearch.searchScripts):
2305         (WebInspector.ResourceSidebarPanel.prototype.performSearch):
2306         Search non-resource scripts individually.
2307
2308         (WebInspector.ResourceSidebarPanel.prototype._searchTreeElementForScript):
2309         Lazily create a ScriptTreeElement for the search tree outline as needed.
2310
2311         (WebInspector.ResourceSidebarPanel.prototype._scriptsToSearch):
2312         When searching scripts, just perform a shallow walk of the tree outline to find
2313         Script resources that are not also Resources. Scripts are always guarenteed to
2314         be in a folder when inspecting a web resource. For JSContext inspection, scripts
2315         are promoted to the top level.
2316
2317         * UserInterface/Main.html:
2318         * UserInterface/Models/SourceCodeSearchMatchObject.js: Renamed from Source/WebInspectorUI/UserInterface/Models/ResourceSearchMatchObject.js.
2319         (WebInspector.SourceCodeSearchMatchObject):
2320         * UserInterface/Views/SearchIcons.css:
2321         (.source-code-match-icon .icon):
2322         (.resource-match-icon .icon): Deleted.
2323         * UserInterface/Views/SearchResultTreeElement.js:
2324         (WebInspector.SearchResultTreeElement):
2325         Rename ResourceSearchMatchObject to SourceCodeSearchMatchObject.
2326
2327 2014-11-19  Joseph Pecoraro  <pecoraro@apple.com>
2328
2329         Web Inspector: Provide $exception in the console for the thrown exception value
2330         https://bugs.webkit.org/show_bug.cgi?id=138726
2331
2332         Reviewed by Timothy Hatcher.
2333
2334         * UserInterface/Base/Test.js:
2335         (WebInspector.loaded):
2336         In order to use RuntimeManager to execute in the global context or on the
2337         active debugger call frame, we need to expose the quickConsole controller.
2338
2339         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
2340         Expose $exception to completion when we paused because of an exception.
2341
2342 2014-11-19  Joseph Pecoraro  <pecoraro@apple.com>
2343
2344         Web Inspector: Debugger should not mutate variable when hovering mouse over ++n expression
2345         https://bugs.webkit.org/show_bug.cgi?id=138839
2346
2347         Reviewed by Timothy Hatcher.
2348
2349         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
2350         (WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
2351
2352 2014-11-19  Joseph Pecoraro  <pecoraro@apple.com>
2353
2354         Web Inspector: Improve basic JavaScript completion in inline <script>s
2355         https://bugs.webkit.org/show_bug.cgi?id=138845
2356
2357         Reviewed by Timothy Hatcher.
2358
2359         * UserInterface/Controllers/CodeMirrorCompletionController.js:
2360         (WebInspector.CodeMirrorCompletionController.prototype._generateJavaScriptCompletions):
2361         Fix up CodeMirror mode handling for JavaScript completion when inside of mixed mode
2362         input (html). Also add completion for CodeMirror's localVars list.
2363
2364 == Rolled over to ChangeLog-2014-11-19 ==