Follow up to r195361. Removing ios-simulator-wk2 fast/viewport/ios directory pass...
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2016-01-20  Saam barati  <sbarati@apple.com>
2
3         Web Inspector: Hook the sampling profiler into the Timelines UI
4         https://bugs.webkit.org/show_bug.cgi?id=152766
5         <rdar://problem/24066360>
6
7         Reviewed by Joseph Pecoraro.
8
9         The main change in this patch is to swap in the SamplingProfiler
10         in place of the LegacyProfiler. To do this, we've created a data
11         structure called CallingContextTree which aggregates the SamplingProfiler's
12         data into an easy to manage tree. To see how the data structure works,
13         consider the following program:
14         ```
15         function bar() { // run code here for a long time. }
16         function baz() { // run code here for a long time. }
17         function foo() { bar(); baz(); }
18         foo();
19         ```
20         From this program, we will create a tree like this:
21                         (program)
22                             |
23                             |
24                            foo
25                            | |
26                           /   \
27                          /     \
28                         bar     baz
29         
30         From this type of tree, we can easily create a CPUProfile payload
31         object. Because the Timelines UI knows how to interact with the
32         CPUProfile object and display it, we currently map the tree to this object
33         to make it trivially easy to display the SamplingProfiler's data. In the future,
34         we may want to find ways to work directly with the CallingContextTree instead
35         of mapping it into another object.
36
37         * Localizations/en.lproj/localizedStrings.js:
38         * UserInterface/Controllers/TimelineManager.js:
39         * UserInterface/Main.html:
40         * UserInterface/Models/CallingContextTree.js: Added.
41         * UserInterface/Models/ScriptInstrument.js:
42         * UserInterface/Protocol/ScriptProfilerObserver.js:
43         * UserInterface/TestStub.html:
44         * UserInterface/Views/ScriptTimelineView.js:
45
46 2016-01-19  Joseph Pecoraro  <pecoraro@apple.com>
47
48         Web Inspector: Uncaught exception when logging an Error object
49         https://bugs.webkit.org/show_bug.cgi?id=153258
50         <rdar://problem/24249068>
51
52         Reviewed by Timothy Hatcher.
53
54         * UserInterface/Views/ErrorObjectView.js:
55         (WebInspector.ErrorObjectView):
56         Initialize members that are used later for clarity.
57
58         (WebInspector.ErrorObjectView.prototype.collapse):
59         (WebInspector.ErrorObjectView.prototype.expand):
60         This never has a previewView, remove it.
61
62         (WebInspector.ErrorObjectView.prototype.appendTitleSuffix):
63         Add the suffix ("= $1") after the description and before the
64         content tree outline.
65
66 2016-01-19  Nikita Vasilyev  <nvasilyev@apple.com>
67
68         Web Inspector: Subclasses of WebInspector.Object shouldn't overwrite this._listeners
69         https://bugs.webkit.org/show_bug.cgi?id=153268
70         <rdar://problem/24252766>
71
72         Reviewed by Timothy Hatcher.
73
74         * UserInterface/Base/Object.js:
75         (WebInspector.Object.prototype.dispatchEventToListeners):
76         Add a console.assert.
77
78         * UserInterface/Views/BreakpointTreeElement.js:
79         (WebInspector.BreakpointTreeElement):
80         (WebInspector.BreakpointTreeElement.prototype.onattach):
81         (WebInspector.BreakpointTreeElement.prototype.ondetach):
82         * UserInterface/Views/ProbeSetDataGrid.js:
83         (WebInspector.ProbeSetDataGrid):
84         (WebInspector.ProbeSetDataGrid.prototype.closed):
85         * UserInterface/Views/ProbeSetDetailsSection.js:
86         (WebInspector.ProbeSetDetailsSection):
87         (WebInspector.ProbeSetDetailsSection.prototype.closed):
88         Replace all instances of "this._listeners" with "this._listenerSet".
89
90 2016-01-19  Timothy Hatcher  <timothy@apple.com>
91
92         Web Inspector: Add protocol version for iOS 9.3
93         https://bugs.webkit.org/show_bug.cgi?id=153256
94         rdar://problem/24247951
95
96         Reviewed by Joseph Pecoraro.
97
98         * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js: Added.
99         * Versions/Inspector-iOS-9.3.json: Added.
100
101 2016-01-19  Joseph Pecoraro  <pecoraro@apple.com>
102
103         REGRESSION: Web Inspector: Hovering linkified node references should show node highlight
104         https://bugs.webkit.org/show_bug.cgi?id=153248
105         <rdar://problem/24245518>
106
107         Reviewed by Timothy Hatcher.
108
109         * UserInterface/Base/DOMUtilities.js:
110         Show the complete node highlight details (colors and node info).
111
112 2016-01-19  Nikita Vasilyev  <nvasilyev@apple.com>
113
114         Web Inspector: WebInspector.Object.addEventListener is O(n), make it O(1)
115         https://bugs.webkit.org/show_bug.cgi?id=152422
116         <rdar://problem/24038047>
117
118         Reviewed by Timothy Hatcher.
119
120         Slow addEventListener was the main cause of Console sluggishness[1].
121
122         This patch changes:
123         addEventListener from O(n) to O(1)
124         removeEventListener from O(n) to O(1)
125
126         Now, addEventListener and removeEventListener take <1ms regardless of the
127         number of listeners attached.
128
129         removeEventListener(null, null, thisObject), a special case when all events
130         for thisObject are removed, was improved from O(n^2) to O(n).
131
132         * UserInterface/Base/LinkedList.js: Added.
133         (LinkedList):
134         (LinkedList.prototype.clear):
135         (LinkedList.prototype.get last):
136         (LinkedList.prototype.push):
137         (LinkedList.prototype.remove):
138         (LinkedList.prototype.forEach):
139         (LinkedList.prototype.toArray):
140         (LinkedList.prototype.toJSON):
141         (LinkedListNode):
142         LinkedList ensures O(1) time complexity for push and remove operations.
143
144         * UserInterface/Base/ListMultimap.js: Added.
145         (ListMultimap):
146         (ListMultimap.prototype.get size):
147         (ListMultimap.prototype.add):
148         (ListMultimap.prototype.delete):
149         (ListMultimap.prototype.deleteAll):
150         (ListMultimap.prototype.has):
151         (ListMultimap.prototype.clear):
152         (ListMultimap.prototype.forEach):
153         (ListMultimap.prototype.toArray):
154         (ListMultimap.prototype.toJSON):
155         ListMultimap unsures O(1) time complexity for add, has and delete operations.
156         ListMultimap preserves insertion order by using a LinkedList.
157
158         * UserInterface/Base/Object.js:
159         (WebInspector.Object):
160         (WebInspector.Object.addEventListener):
161         (WebInspector.Object.removeEventListener):
162         (WebInspector.Object.hasEventListeners):
163         (WebInspector.Object.retainedObjectsWithPrototype):
164         (WebInspector.Object.prototype.dispatchEventToListeners):
165         Replace this._listeners[eventType] from array of objects to ListMultimap.
166
167         * UserInterface/Main.html:
168         * UserInterface/Test.html:
169         * UserInterface/TestStub.html:
170
171 2016-01-19  Matt Baker  <mattbaker@apple.com>
172
173         Web Inspector: cleanup TreeOutline class and separate styles from NavigationSidebarPanel
174         https://bugs.webkit.org/show_bug.cgi?id=153146
175         <rdar://problem/24213071>
176
177         Reviewed by Timothy Hatcher.
178
179         This patch consolidates and simplifies the tree outline styles that were previously
180         defined across various classes. A new stylesheet, TreeOutline.css, includes all
181         the styles needed to create a basic TreeOutline.
182
183         In addition, certain tree features which were previously controlled by manually
184         toggling class names have been promoted to properties of TreeOutline:
185          - compact: tree elements have reduced vertical spacing. Used by object trees.
186            The compact and large settings are mutually exclusive.
187          - large: tree elements (and their icons) are large. Used by TimelinesSidebarPanel.
188            Previously there existed a `small` class name which was enabled in every
189            case except TimelineSidebarPanel's Timelines tree. Since it was the rule rather
190            than the exception the class has been removed and is now the default style.
191          - disclosureButtons: control the appearance of disclosure buttons.
192          - customIndent: control use of generated style rules.
193
194         * UserInterface/Main.html:
195         New CSS file.
196
197         * UserInterface/Views/ApplicationCacheFrameTreeElement.js:
198         (WebInspector.ApplicationCacheFrameTreeElement): Deleted.
199         * UserInterface/Views/BreakpointTreeElement.js:
200         (WebInspector.BreakpointTreeElement): Deleted.
201         * UserInterface/Views/CallFrameTreeElement.js:
202         (WebInspector.CallFrameTreeElement): Deleted.
203         * UserInterface/Views/ContentFlowTreeElement.js:
204         (WebInspector.ContentFlowTreeElement): Deleted.
205         Removed call to obsolete TreeOutline.prototype.small setter.
206
207         * UserInterface/Views/DOMTreeOutline.css:
208         (.tree-outline.dom):
209         (.tree-outline.dom li.hovered:not(.selected) .selection):
210         (.tree-outline.dom li .selection):
211         (.tree-outline.dom li.selected .selection):
212         (.tree-outline.dom li.elements-drag-over .selection):
213         (.tree-outline.dom:focus li.selected .selection):
214         (.tree-outline.dom li.selected > span::after):
215         (.tree-outline.dom:focus li.selected > span::after):
216         (.tree-outline.dom ol):
217         (.tree-outline.dom ol.children):
218         (.tree-outline.dom ol.children.expanded):
219         (.tree-outline.dom li):
220         (.tree-outline.dom li.pseudo-class-enabled > .selection::before):
221         (.tree-outline.dom.single-node li):
222         (.tree-outline.dom:focus li.selected):
223         (.tree-outline.dom:focus li.selected.pseudo-class-enabled > .selection::before):
224         (.tree-outline.dom:focus li.selected *):
225         (.tree-outline.dom li.parent):
226         (.tree-outline.dom li .html-tag.close):
227         (.tree-outline.dom li.parent::before):
228         (.tree-outline.dom:focus li.parent.selected::before):
229         (.tree-outline.dom li.parent.expanded::before):
230         (.tree-outline.dom:focus li.parent.expanded.selected::before):
231         (.tree-outline.dom .html-text-node.large):
232         (.tree-outline.dom .html-pseudo-element):
233         (.tree-outline.dom .html-fragment.shadow):
234         (.showing-find-banner .tree-outline.dom .search-highlight):
235         (.dom-tree-outline): Deleted.
236         (.dom-tree-outline li.hovered:not(.selected) .selection): Deleted.
237         (.dom-tree-outline li .selection): Deleted.
238         (.dom-tree-outline li.selected .selection): Deleted.
239         (.dom-tree-outline li.elements-drag-over .selection): Deleted.
240         (.dom-tree-outline:focus li.selected .selection): Deleted.
241         (.dom-tree-outline li.selected > span::after): Deleted.
242         (.dom-tree-outline:focus li.selected > span::after): Deleted.
243         (.dom-tree-outline ol): Deleted.
244         (.dom-tree-outline ol.children): Deleted.
245         (.dom-tree-outline ol.children.expanded): Deleted.
246         (.dom-tree-outline li): Deleted.
247         (.dom-tree-outline li.pseudo-class-enabled > .selection::before): Deleted.
248         (.dom-tree-outline.single-node li): Deleted.
249         (.dom-tree-outline:focus li.selected): Deleted.
250         (.dom-tree-outline:focus li.selected.pseudo-class-enabled > .selection::before): Deleted.
251         (.dom-tree-outline:focus li.selected *): Deleted.
252         (.dom-tree-outline li.parent): Deleted.
253         (.dom-tree-outline li .html-tag.close): Deleted.
254         (.dom-tree-outline li.parent::before): Deleted.
255         (.dom-tree-outline:focus li.parent.selected::before): Deleted.
256         (.dom-tree-outline li.parent.expanded::before): Deleted.
257         (.dom-tree-outline:focus li.parent.expanded.selected::before): Deleted.
258         (.dom-tree-outline .html-text-node.large): Deleted.
259         (.dom-tree-outline .html-pseudo-element): Deleted.
260         (.dom-tree-outline .html-fragment.shadow): Deleted.
261         (.showing-find-banner .dom-tree-outline .search-highlight): Deleted.
262         Updated selectors with new tree outline class names.
263
264         * UserInterface/Views/DOMTreeOutline.js:
265         (WebInspector.DOMTreeOutline):
266         Use default TreeOutline DOM element, and simplify element class name.
267
268         * UserInterface/Views/DatabaseTableTreeElement.js:
269         (WebInspector.DatabaseTableTreeElement): Deleted.
270         * UserInterface/Views/DatabaseTreeElement.js:
271         (WebInspector.DatabaseTreeElement): Deleted.
272         Removed call to obsolete TreeOutline.prototype.small setter.
273
274         * UserInterface/Views/ErrorObjectView.css:
275         (.error-object:not(.expanded) .tree-outline):
276         (.error-object .tree-outline):
277         (.error-object:not(.expanded) .error-object-outline): Deleted.
278         (.error-object-outline): Deleted.
279         Updated selectors with new tree outline class names.
280
281         * UserInterface/Views/ErrorObjectView.js:
282         (WebInspector.ErrorObjectView): Deleted.
283         Removed unused tree outline class name.
284
285         * UserInterface/Views/FolderTreeElement.js:
286         (WebInspector.FolderTreeElement): Deleted.
287         Removed call to obsolete TreeOutline.prototype.small setter.
288
289         * UserInterface/Views/FormattedValue.css:
290         (.formatted-node > .tree-outline.dom):
291         (.formatted-node > .tree-outline.dom ol):
292         (.formatted-node > .tree-outline.dom li):
293         (.formatted-node > .tree-outline.dom li.hovered:not(.selected) .selection):
294         (.formatted-node > .dom-tree-outline): Deleted.
295         (.formatted-node > .dom-tree-outline ol): Deleted.
296         (.formatted-node > .dom-tree-outline li): Deleted.
297         (.formatted-node > .dom-tree-outline li.hovered:not(.selected) .selection): Deleted.
298         Updated selectors with new tree outline class names.
299
300         * UserInterface/Views/GeneralTreeElement.js:
301         (WebInspector.GeneralTreeElement.prototype._updateTitleTooltip):
302         (WebInspector.GeneralTreeElement.prototype.get small): Deleted.
303         (WebInspector.GeneralTreeElement.prototype.set small): Deleted.
304         (WebInspector.GeneralTreeElement.prototype.get twoLine): Deleted.
305         (WebInspector.GeneralTreeElement.prototype.set twoLine): Deleted.
306         Removed properties `small` and `twoLine`. The first is no longer needed as
307         it is now the default tree element style. The second was not being used.
308
309         * UserInterface/Views/IndexedDatabaseObjectStoreIndexTreeElement.js:
310         (WebInspector.IndexedDatabaseObjectStoreIndexTreeElement): Deleted.
311         * UserInterface/Views/IndexedDatabaseObjectStoreTreeElement.js:
312         (WebInspector.IndexedDatabaseObjectStoreTreeElement): Deleted.
313         * UserInterface/Views/IndexedDatabaseTreeElement.js:
314         (WebInspector.IndexedDatabaseTreeElement): Deleted.
315         Removed call to obsolete TreeOutline.prototype.small setter.
316
317         * UserInterface/Views/IssueTreeElement.css:
318         (.navigation-sidebar-panel-content-tree-outline .item.small.issue .icon): Deleted.
319         No longer needed.
320
321         * UserInterface/Views/IssueTreeElement.js:
322         (WebInspector.IssueTreeElement): Deleted.
323         Removed call to obsolete TreeOutline.prototype.small setter.
324
325         * UserInterface/Views/LayoutTimelineView.css:
326         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .tree-outline.layout .item .subtitle):
327         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle): Deleted.
328         Updated selectors with new tree outline class names.
329
330         * UserInterface/Views/LogTreeElement.js:
331         (WebInspector.LogTreeElement): Deleted.
332         Removed call to obsolete TreeOutline.prototype.small setter.
333
334         * UserInterface/Views/NavigationSidebarPanel.css:
335         (.navigation-sidebar-panel-content-tree-outline .children): Deleted.
336         (.navigation-sidebar-panel-content-tree-outline .children.expanded): Deleted.
337         (.navigation-sidebar-panel-content-tree-outline .item): Deleted.
338         (.navigation-sidebar-panel-content-tree-outline.hide-disclosure-buttons > .children): Deleted.
339         (.navigation-sidebar-panel-content-tree-outline > .children.hide-disclosure-buttons > .children): Deleted.
340         (.navigation-sidebar-panel-content-tree-outline:not(.hide-disclosure-buttons) .item:not(.parent) .icon): Deleted.
341         (.navigation-sidebar-panel-content-tree-outline.hide-disclosure-buttons .item.small): Deleted.
342         (.navigation-sidebar-panel-content-tree-outline .item .disclosure-button): Deleted.
343         (.navigation-sidebar-panel-content-tree-outline.hide-disclosure-buttons .item .disclosure-button): Deleted.
344         (.navigation-sidebar-panel-content-tree-outline .item.parent .disclosure-button): Deleted.
345         (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .disclosure-button): Deleted.
346         (.navigation-sidebar-panel-content-tree-outline .item.expanded .disclosure-button): Deleted.
347         (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected.expanded .disclosure-button): Deleted.
348         (.navigation-sidebar-panel-content-tree-outline .item .icon): Deleted.
349         (.navigation-sidebar-panel-content-tree-outline .item .status): Deleted.
350         (.navigation-sidebar-panel-content-tree-outline .item .status:empty): Deleted.
351         (.navigation-sidebar-panel-content-tree-outline .item.selected): Deleted.
352         (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected): Deleted.
353         (body.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected): Deleted.
354         (.navigation-sidebar-panel-content-tree-outline .item .titles): Deleted.
355         (.navigation-sidebar-panel-content-tree-outline .item .highlighted): Deleted.
356         (.navigation-sidebar-panel-content-tree-outline .item .titles.no-subtitle): Deleted.
357         (.navigation-sidebar-panel-content-tree-outline .item .title::after): Deleted.
358         (.navigation-sidebar-panel-content-tree-outline .item .subtitle): Deleted.
359         (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .subtitle): Deleted.
360         (.navigation-sidebar-panel-content-tree-outline .item .subtitle:empty): Deleted.
361         (.navigation-sidebar-panel-content-tree-outline .item.small): Deleted.
362         (.navigation-sidebar-panel-content-tree-outline .item.small.two-line): Deleted.
363         (.navigation-sidebar-panel-content-tree-outline .item.small .icon): Deleted.
364         (.navigation-sidebar-panel-content-tree-outline .item.small .status): Deleted.
365         (.navigation-sidebar-panel-content-tree-outline .item.small .status .indeterminate-progress-spinner): Deleted.
366         (.navigation-sidebar-panel-content-tree-outline .item.small .titles): Deleted.
367         (.navigation-sidebar-panel-content-tree-outline .item.small.two-line .status): Deleted.
368         (.navigation-sidebar-panel-content-tree-outline .item.small.two-line .titles): Deleted.
369         (.navigation-sidebar-panel-content-tree-outline .item.small.two-line .titles.no-subtitle): Deleted.
370         (.navigation-sidebar-panel-content-tree-outline .item.small .subtitle): Deleted.
371         (.navigation-sidebar-panel-content-tree-outline .item.small.two-line .icon): Deleted.
372         (.navigation-sidebar-panel-content-tree-outline .item.small:not(.two-line) .title::after): Deleted.
373         (.navigation-sidebar-panel-content-tree-outline .item.small:not(.two-line) .subtitle::before): Deleted.
374         Generic tree outline styles removed, cleaned up, and relocated to TreeOutline.css.
375
376         * UserInterface/Views/NavigationSidebarPanel.js:
377         Removed static property HideDisclosureButtonsStyleClassName, which is now
378         encapsulated by TreeOutline.
379         (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
380         Use default TreeOutline DOM element instead of creating it.
381         (WebInspector.NavigationSidebarPanel): Deleted.
382         Remove call to generate style rules.
383         (WebInspector.NavigationSidebarPanel.prototype._generateStyleRulesIfNeeded): Deleted.
384         Moved to TreeOutline.js.
385
386         * UserInterface/Views/NetworkSidebarPanel.css:
387         (.sidebar > .panel.navigation.network.network-grid-content-view-showing .tree-outline.network-grid .item .subtitle):
388         (.sidebar > .panel.navigation.network > .content > .tree-outline):
389         (.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content > .tree-outline):
390         (.sidebar > .panel.navigation.network.network-grid-content-view-showing .navigation-sidebar-panel-content-tree-outline.network-grid .item .subtitle): Deleted.
391         (.sidebar > .panel.navigation.network > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
392         (.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
393         Updated selectors with new tree outline class names.
394
395         * UserInterface/Views/NetworkSidebarPanel.js:
396         (WebInspector.NetworkSidebarPanel):
397         Disable tree outline disclosure buttons.
398
399         * UserInterface/Views/NetworkTimelineView.css:
400         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .tree-outline.network .item .subtitle):
401         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle): Deleted.
402         Updated selectors with new tree outline class names.
403
404         * UserInterface/Views/NetworkTimelineView.js:
405         (WebInspector.NetworkTimelineView):
406         Disable tree outline disclosure buttons.
407
408         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
409         (.object-tree-array-index .index-value .object-tree .tree-outline.object):
410         (.object-tree-array-index .index-value .formatted-node .tree-outline.dom):
411         (.object-tree-array-index .index-value .object-tree .object-tree-outline): Deleted.
412         (.object-tree-array-index .index-value .formatted-node .dom-tree-outline): Deleted.
413         Updated selectors with new tree outline class names.
414
415         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
416         (WebInspector.ObjectTreeBaseTreeElement): Deleted.
417         Removed call to obsolete TreeOutline.prototype.small setter.
418
419         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
420         (.tree-outline .item.object-tree-property):
421         (.item.object-tree-property.prototype-property):
422         (.item.object-tree-property.prototype-property + ol):
423         (.object-tree-property): Deleted.
424         (.object-tree-property > .titles): Deleted.
425         (.object-tree-property > .disclosure-button): Deleted.
426         (.object-tree-property.parent > .disclosure-button): Deleted.
427         (.object-tree-property.parent.expanded > .disclosure-button): Deleted.
428         (.object-tree-property > .icon): Deleted.
429         (.object-tree-property.prototype-property): Deleted.
430         (.object-tree-property.prototype-property + ol): Deleted.
431         Updated selectors with new tree outline class names, removed styles which
432         are now provided by TreeOutline.css.
433
434         * UserInterface/Views/ObjectTreeView.css:
435         (.object-tree .tree-outline.object):
436         (.object-tree.expanded > .tree-outline.object):
437         (.tree-outline.object):
438         (.object-tree.properties-only .tree-outline.object):
439         (.tree-outline.object li):
440         (.tree-outline.object ol):
441         (.tree-outline.object ol.expanded):
442         (.tree-outline.object li .empty-message):
443         (.object-tree .object-tree-outline): Deleted.
444         (.object-tree.expanded > .object-tree-outline): Deleted.
445         (.object-tree-outline): Deleted.
446         (.object-tree.properties-only .object-tree-outline): Deleted.
447         (.object-tree-outline li): Deleted.
448         (.object-tree-outline ol): Deleted.
449         (.object-tree-outline ol.expanded): Deleted.
450         (.object-tree-outline li .empty-message): Deleted.
451         Updated selectors with new tree outline class names.
452
453         * UserInterface/Views/ObjectTreeView.js:
454         (WebInspector.ObjectTreeView):
455         Use default TreeOutline DOM element, and simplify element class name.
456         Enable custom indent (disables generated style rules).
457
458         * UserInterface/Views/ProfileNodeTreeElement.js:
459         (WebInspector.ProfileNodeTreeElement): Deleted.
460         Removed call to obsolete TreeOutline.prototype.small setter.
461
462         * UserInterface/Views/RenderingFrameTimelineView.css:
463         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .tree-outline.rendering-frame .item:not(.paint-record):not(.layout-record) .subtitle):
464         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.rendering-frame .item:not(.paint-record):not(.layout-record) .subtitle): Deleted.
465         Updated selectors with new tree outline class names.
466
467         * UserInterface/Views/ResourceSidebarPanel.js:
468         (WebInspector.ResourceSidebarPanel):
469         Disable tree outline disclosure buttons.
470         (WebInspector.ResourceSidebarPanel.prototype._extraDomainsActivated):
471         Enable tree outline disclosure buttons.
472
473         * UserInterface/Views/ScriptTimelineView.css:
474         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .tree-outline.script .item .subtitle):
475         (.sidebar > .panel.navigation.timeline:not(.timeline-recording-content-view-showing) .tree-outline.script .item .alternate-subtitle):
476         (.tree-outline .item .alternate-subtitle):
477         (.tree-outline:matches(:focus, .force-focus) .item.selected .alternate-subtitle):
478         (.tree-outline .item.small:not(.two-line) .alternate-subtitle::before):
479         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle): Deleted.
480         (.sidebar > .panel.navigation.timeline:not(.timeline-recording-content-view-showing) .navigation-sidebar-panel-content-tree-outline.script .item .alternate-subtitle): Deleted.
481         (.navigation-sidebar-panel-content-tree-outline .item .alternate-subtitle): Deleted.
482         (.navigation-sidebar-panel-content-tree-outline:matches(:focus, .force-focus) .item.selected .alternate-subtitle): Deleted.
483         (.navigation-sidebar-panel-content-tree-outline .item.small:not(.two-line) .alternate-subtitle::before): Deleted.
484         Updated selectors with new tree outline class names.
485
486         * UserInterface/Views/SearchResultTreeElement.js:
487         (WebInspector.SearchResultTreeElement): Deleted.
488         * UserInterface/Views/SourceCodeTreeElement.js:
489         (WebInspector.SourceCodeTreeElement): Deleted.
490         * UserInterface/Views/StorageTreeElement.js:
491         (WebInspector.StorageTreeElement): Deleted.
492         Removed call to obsolete TreeOutline.prototype.small setter.
493
494         * UserInterface/Views/TimelineDataGrid.css:
495         (.tree-outline.timeline-data-grid .item:hover):
496         (.tree-outline.timeline-data-grid .item:hover .subtitle):
497         (.timeline-data-grid-tree-outline): Deleted.
498         (.timeline-data-grid-tree-outline .item): Deleted.
499         (.timeline-data-grid-tree-outline .item .status): Deleted.
500         (.timeline-data-grid-tree-outline .item .icon): Deleted.
501         (.timeline-data-grid-tree-outline .item:hover): Deleted.
502         (.timeline-data-grid-tree-outline .item .titles): Deleted.
503         (.timeline-data-grid-tree-outline .item .title::after): Deleted.
504         (.timeline-data-grid-tree-outline .item .subtitle): Deleted.
505         (.timeline-data-grid-tree-outline .item:hover .subtitle): Deleted.
506         (.timeline-data-grid-tree-outline .item .subtitle:empty): Deleted.
507         (.timeline-data-grid-tree-outline .item.small): Deleted.
508         (.timeline-data-grid-tree-outline .item.small .icon): Deleted.
509         (.timeline-data-grid-tree-outline .item.small .status): Deleted.
510         (.timeline-data-grid-tree-outline .item.small .titles): Deleted.
511         (.timeline-data-grid-tree-outline .item.small .subtitle): Deleted.
512         (.timeline-data-grid-tree-outline .item.small:not(.two-line) .title::after): Deleted.
513         (.timeline-data-grid-tree-outline .item.small:not(.two-line) .subtitle::before): Deleted.
514         Updated selectors with new tree outline class names, removed styles which
515         are now provided by TreeOutline.css.
516
517         * UserInterface/Views/TimelineDataGrid.js:
518         (WebInspector.TimelineDataGrid.prototype._createPopoverContent):
519         Use default TreeOutline DOM element, and simplify element class name.
520
521         * UserInterface/Views/TimelineRecordTreeElement.js:
522         (WebInspector.TimelineRecordTreeElement): Deleted.
523         Removed call to obsolete TreeOutline.prototype.small setter.
524
525         * UserInterface/Views/TimelineSidebarPanel.css:
526         (.sidebar > .panel.navigation.timeline > .timelines-content .close-button): Deleted.
527         Removed styles which are now provided by TreeOutline.css.
528
529         * UserInterface/Views/TimelineSidebarPanel.js:
530         (WebInspector.TimelineSidebarPanel):
531         Disable tree outline disclosure buttons, enable large tree style.
532
533         * UserInterface/Views/TimelineView.css:
534         (.panel.navigation.timeline > .content > .tree-outline):
535         (.panel.navigation.timeline.timeline-recording-content-view-showing > .content > .tree-outline):
536         (.panel.navigation.timeline > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
537         (.panel.navigation.timeline.timeline-recording-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
538         Updated selectors with new tree outline class names.
539
540         * UserInterface/Views/TreeOutline.css: Added.
541         (.tree-outline .children):
542         (.tree-outline .children.expanded):
543         (.tree-outline .item):
544         (.tree-outline.compact .item):
545         (.tree-outline.large .item):
546         (.tree-outline.hide-disclosure-buttons > .children):
547         (.tree-outline > .children.hide-disclosure-buttons > .children):
548         (.tree-outline:not(.hide-disclosure-buttons) .item:not(.parent) .icon):
549         (.tree-outline .item .disclosure-button):
550         (.tree-outline.hide-disclosure-buttons .item .disclosure-button):
551         (.tree-outline .item.parent .disclosure-button):
552         (.tree-outline:matches(:focus, .force-focus) .item.selected .disclosure-button):
553         (.tree-outline .item.expanded .disclosure-button):
554         (.tree-outline:matches(:focus, .force-focus) .item.selected.expanded .disclosure-button):
555         (.tree-outline .item .icon):
556         (.tree-outline.compact .item .icon):
557         (.tree-outline.large .item .icon):
558         (.tree-outline .item .status):
559         (.tree-outline.large .item .status):
560         (.tree-outline .item .status:empty):
561         (.tree-outline .item.selected):
562         (.tree-outline:matches(:focus, .force-focus) .item.selected):
563         (body.window-inactive .tree-outline .item.selected):
564         (.tree-outline .item .titles):
565         (.tree-outline.compact .item .titles):
566         (.tree-outline.large .item .titles):
567         (.tree-outline .item .highlighted):
568         (.tree-outline.large .item .titles.no-subtitle):
569         (.tree-outline .item .title::after):
570         (.tree-outline .item .subtitle):
571         (.tree-outline.large .item .subtitle):
572         (.tree-outline:matches(:focus, .force-focus) .item.selected .subtitle):
573         (.tree-outline .item .subtitle:empty):
574         (.tree-outline:not(.large) .item .status .indeterminate-progress-spinner):
575         (.tree-outline .item .subtitle::before):
576         Relocated tree outlines styles from NavigationSidebarPanel.css.
577
578         * UserInterface/Views/TreeOutline.js:
579         (WebInspector.TreeOutline):
580         (WebInspector.TreeOutline.prototype.get compact):
581         (WebInspector.TreeOutline.prototype.set compact):
582         (WebInspector.TreeOutline.prototype.get large):
583         (WebInspector.TreeOutline.prototype.set large):
584         (WebInspector.TreeOutline.prototype.get disclosureButtons):
585         (WebInspector.TreeOutline.prototype.set disclosureButtons):
586         (WebInspector.TreeOutline.prototype.get customIndent):
587         (WebInspector.TreeOutline.prototype.set customIndent):
588         Added properties for tree element appearance and indentation
589         behavior, so clients don't need to manually toggle style classes.
590         (WebInspector.TreeOutline._generateStyleRulesIfNeeded):
591         Relocated from NavigationSidebarPanel.js.
592
593         * UserInterface/Views/TypeTreeElement.js:
594         (WebInspector.TypeTreeElement): Deleted.
595         Removed call to obsolete TreeOutline.prototype.small setter.
596
597         * UserInterface/Views/TypeTreeView.css:
598         (.tree-outline.type):
599         (.tree-outline.type li):
600         (.tree-outline.type ol):
601         (.tree-outline.type ol.expanded):
602         (.tree-outline.type li .empty-message):
603         (.type-tree-outline): Deleted.
604         (.type-tree-outline li): Deleted.
605         (.type-tree-outline ol): Deleted.
606         (.type-tree-outline ol.expanded): Deleted.
607         (.type-tree-outline li .empty-message): Deleted.
608         Updated selectors with new tree outline class names.
609
610         * UserInterface/Views/TypeTreeView.js:
611         (WebInspector.TypeTreeView):
612         Use default TreeOutline DOM element, and simplify element class name.
613
614 2016-01-13  Joseph Pecoraro  <pecoraro@apple.com>
615
616         Web Inspector: Inspector should use the last sourceURL / sourceMappingURL directive
617         https://bugs.webkit.org/show_bug.cgi?id=153072
618         <rdar://problem/24168312>
619
620         Reviewed by Timothy Hatcher.
621
622         * UserInterface/Base/Utilities.js:
623         Prepend instead of append the sourceURL so the provided string
624         can include a sourceURL and override it. Such as manually
625         evaluating a script through the quick console with a sourceURL.
626
627         * UserInterface/Models/SourceMapResource.js:
628         Fix an incorrectly named property.
629
630 2016-01-13  Devin Rousso  <dcrousso+webkit@gmail.com>
631
632         Web Inspector: Add support for the existing GradientEditor in the CSS Rules sidebar
633         https://bugs.webkit.org/show_bug.cgi?id=153004
634
635         Reviewed by Timothy Hatcher.
636
637         Both the Visual sidebar and Resource view have editors for CSS gradient
638         values, but the Rules sidebar instead only adds editors for basic color
639         values. Instead of duplicating the code for gradient swatches, existing
640         code will be used to give this same functionality to the Rules sidebar.
641
642         * Localizations/en.lproj/localizedStrings.js:
643         * UserInterface/Main.html:
644
645         * UserInterface/Models/Gradient.js:
646         (WebInspector.Gradient):
647         (WebInspector.Gradient.fromString):
648         (WebInspector.Gradient.stopsWithComponents):
649         (WebInspector.Gradient.prototype.copy):
650         (WebInspector.Gradient.prototype.toString):
651         Refactored WebInspector.Gradient into its own class.
652
653         (WebInspector.LinearGradient):
654         (WebInspector.LinearGradient.prototype.toString):
655         Now uses WebInspector.Gradient inheritance and methods.
656
657         (WebInspector.RadialGradient):
658         (WebInspector.RadialGradient.prototype.toString):
659         Now uses WebInspector.Gradient inheritance and methods.
660
661         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
662         Use InlineSwatch.css values instead.
663
664         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker): Deleted.
665         (@media (-webkit-max-device-pixel-ratio: 1)): Deleted.
666         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker:hover): Deleted.
667         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .cubic-bezier-marker:active): Deleted.
668
669         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
670         (WebInspector.CSSStyleDeclarationTextEditor.prototype.didDismissPopover): Deleted.
671         Removed unused popover member variable.
672
673         (WebInspector.CSSStyleDeclarationTextEditor.prototype._contentChanged):
674         (WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers.update):
675         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches.createSwatch):
676         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches.update):
677         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches):
678         Renamed variables for more consistent naming and reimplemented the logic
679         to use the new WebInspector.InlineSwatch methods.  As a result, it was
680         possible to consolidate the 3 different type of swatch functions into a
681         single function.
682
683         (WebInspector.CSSStyleDeclarationTextEditor.prototype._commentProperty.update):
684         (WebInspector.CSSStyleDeclarationTextEditor.prototype._uncommentRange.update):
685         (WebInspector.CSSStyleDeclarationTextEditor.prototype._inlineSwatchValueChanged.update):
686         (WebInspector.CSSStyleDeclarationTextEditor.prototype._inlineSwatchValueChanged):
687         (WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
688         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.createSwatch): Deleted.
689         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.update): Deleted.
690         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches): Deleted.
691         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createBezierEditors.update): Deleted.
692         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createBezierEditors): Deleted.
693         (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchColorChanged.update): Deleted.
694         (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchColorChanged): Deleted.
695         (WebInspector.CSSStyleDeclarationTextEditor.prototype._cubicBezierMarkerClicked.updateCodeMirror.update): Deleted.
696         (WebInspector.CSSStyleDeclarationTextEditor.prototype._cubicBezierMarkerClicked.updateCodeMirror): Deleted.
697         (WebInspector.CSSStyleDeclarationTextEditor.prototype._cubicBezierMarkerClicked): Deleted.
698
699         * UserInterface/Views/CodeMirrorTextMarkers.js:
700         (createCodeMirrorColorTextMarkers.matchFunction):
701         Added logic so that if the matched color string is found inside a gradient,
702         it will not have a marker created for it.
703
704         * UserInterface/Views/InlineSwatch.css: Renamed from Source/WebInspectorUI/UserInterface/Views/ColorSwatch.css.
705         Consolidated the various swatch CSS classes into one file.
706
707         (.inline-swatch):
708         (.inline-swatch.bezier):
709         (.inline-swatch.bezier:hover):
710         (.inline-swatch.bezier:active):
711         (@media (-webkit-max-device-pixel-ratio: 1)):
712         (.inline-swatch > span):
713         Ensured that the inner swatch element can not be selected so that the "click"
714         listener on its parent always fires.
715
716         (.inline-swatch:hover > span):
717         (.inline-swatch:active > span):
718         (.inline-swatch.bezier > span):
719
720         * UserInterface/Views/InlineSwatch.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ColorSwatch.js.
721         (WebInspector.InlineSwatch):
722         Now accepts a new first argument to indicate what type of color swatch
723         to create and what functionality it will have.  Currently has options
724         for WebInspector.Color, WebInspector.Gradient, and WebInspector.CubicBezier.
725
726         (WebInspector.InlineSwatch.prototype.get element):
727         (WebInspector.InlineSwatch.prototype.get value):
728         (WebInspector.InlineSwatch.prototype.set value):
729         (WebInspector.InlineSwatch.prototype._fallbackValue):
730         (WebInspector.InlineSwatch.prototype._updateSwatch):
731         (WebInspector.InlineSwatch.prototype._swatchElementClicked):
732         (WebInspector.InlineSwatch.prototype._valueEditorValueDidChange):
733         (WebInspector.InlineSwatch.prototype._handleContextMenuEvent):
734         (WebInspector.InlineSwatch.prototype._getNextValidHEXFormat.hexMatchesCurrentColor):
735         (WebInspector.InlineSwatch.prototype._getNextValidHEXFormat):
736
737         * UserInterface/Views/VisualStyleBackgroundPicker.css:
738         (.visual-style-property-container.background-picker > .visual-style-property-value-container > .inline-swatch.gradient):
739         (.visual-style-property-container.background-picker > .visual-style-property-value-container:not(.gradient-value) > .inline-swatch.gradient):
740         (.visual-style-property-container.background-picker > .visual-style-property-value-container > .inline-swatch.gradient:hover):
741         (.visual-style-property-container.background-picker > .visual-style-property-value-container > .inline-swatch.gradient:active):
742         (.visual-style-property-container.background-picker > .visual-style-property-value-container > .inline-swatch.gradient > span):
743         (.visual-style-property-container.background-picker > .visual-style-property-value-container.gradient-value > .inline-swatch.gradient + .value-input):
744         (.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-swatch): Deleted.
745         (.visual-style-property-container.background-picker > .visual-style-property-value-container:not(.gradient-value) > .color-swatch): Deleted.
746         (.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-swatch:hover): Deleted.
747         (.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-swatch:active): Deleted.
748         (.visual-style-property-container.background-picker > .visual-style-property-value-container > .color-swatch > span): Deleted.
749         (.visual-style-property-container.background-picker > .visual-style-property-value-container.gradient-value > .color-swatch + .value-input): Deleted.
750
751         * UserInterface/Views/VisualStyleBackgroundPicker.js:
752         Removed the specific code for the gradient swatch and moved to using a
753         gradient-type InlineSwatch for gradient values instead.
754
755         (WebInspector.VisualStyleBackgroundPicker):
756         (WebInspector.VisualStyleBackgroundPicker.prototype.set value):
757         (WebInspector.VisualStyleBackgroundPicker.prototype._updateGradient):
758         (WebInspector.VisualStyleBackgroundPicker.prototype._gradientSwatchColorChanged):
759         (WebInspector.VisualStyleBackgroundPicker.prototype._valueInputValueChanged):
760         (WebInspector.VisualStyleBackgroundPicker.prototype._handleKeywordChanged):
761         (WebInspector.VisualStyleBackgroundPicker.prototype._updateGradientSwatch): Deleted.
762         (WebInspector.VisualStyleBackgroundPicker.prototype._gradientSwatchClicked.handleColorPickerToggled): Deleted.
763         (WebInspector.VisualStyleBackgroundPicker.prototype._gradientSwatchClicked): Deleted.
764         (WebInspector.VisualStyleBackgroundPicker.prototype._gradientEditorGradientChanged): Deleted.
765
766         * UserInterface/Views/VisualStyleColorPicker.css:
767         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .inline-swatch.color):
768         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .inline-swatch.color:hover):
769         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .inline-swatch.color:active):
770         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .inline-swatch.color > span):
771         Add override CSS to ensure that the color-type InlineSwatch displays nicely
772         next to the flexbox style Visual sidebar.
773
774         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch): Deleted.
775         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch:hover): Deleted.
776         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch:active): Deleted.
777         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch > span): Deleted.
778         Refactored to only use overriding properties of the basic .inline-swatch values.
779
780         * UserInterface/Views/VisualStyleColorPicker.js:
781         (WebInspector.VisualStyleColorPicker):
782         (WebInspector.VisualStyleColorPicker.prototype._colorSwatchColorChanged):
783         (WebInspector.VisualStyleColorPicker.prototype._updateColorSwatch):
784
785         * UserInterface/Views/VisualStyleTimingEditor.css:
786         (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .inline-swatch.bezier):
787         (.visual-style-property-container.timing-editor > .visual-style-property-value-container:not(.bezier-value) > .inline-swatch.bezier):
788         (@media (-webkit-min-device-pixel-ratio: 2)):
789         Add override CSS to ensure that the color-type InlineSwatch displays nicely
790         next to the flexbox style Visual sidebar.
791
792         (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor): Deleted.
793         (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor:hover): Deleted.
794         (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .bezier-editor:active): Deleted.
795         Refactored to only use overriding properties of the basic .inline-swatch values.
796
797         * UserInterface/Views/VisualStyleTimingEditor.js:
798         Removed the specific code for the cubic-bezier swatch and moved to using a
799         cubic-bezier-type InlineSwatch for gradient values instead.
800
801         (WebInspector.VisualStyleTimingEditor):
802         (WebInspector.VisualStyleTimingEditor.prototype.get bezierValue):
803         (WebInspector.VisualStyleTimingEditor.prototype.set bezierValue):
804         (WebInspector.VisualStyleTimingEditor.prototype._setValue):
805         (WebInspector.VisualStyleTimingEditor.prototype._handleKeywordChanged):
806         (WebInspector.VisualStyleTimingEditor.prototype._bezierSwatchValueChanged):
807         (WebInspector.VisualStyleTimingEditor.prototype._bezierMarkerClicked): Deleted.
808
809 2016-01-12  Matt Baker  <mattbaker@apple.com>
810
811         Web Inspector: Timeline recording controls should use NavigationBar
812         https://bugs.webkit.org/show_bug.cgi?id=152997
813
814         Reviewed by Brian Burg.
815
816         NavigtaionBar should always be preferred over manually editing the DOM.
817         Reusing existing button types for the record button and status element lets us
818         eliminate a bunch of CSS, and will make future changes to the Timelines UI
819         (such as adding addition recording controls), easier to implement.
820
821         * Localizations/en.lproj/localizedStrings.js:
822         New tooltip strings.
823
824         * UserInterface/Views/TimelineSidebarPanel.css:
825         (.sidebar > .panel.navigation.timeline > .navigation-bar > .item.record-start-stop):
826         (.sidebar > .panel.navigation.timeline > .navigation-bar > .item.record-start-stop:hover):
827         (.sidebar > .panel.navigation.timeline > .navigation-bar > .item.record-start-stop:active):
828         Replaced similar styles used for the record glyph.
829         (.sidebar > .panel.navigation.timeline > .navigation-bar > .item.record-start-stop *):
830         Prevent multiple mouseover/mouseout events while hovering the navigation item.
831         (.sidebar > .panel.navigation.timeline > .navigation-bar > .item.flexible-space):
832         Replaced similar styles used for the record status element.
833         (.sidebar > .panel.navigation.timeline > .status-bar): Deleted.
834         (body.window-inactive .sidebar > .panel.navigation.timeline > .status-bar): Deleted.
835         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph): Deleted.
836         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover): Deleted.
837         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:active): Deleted.
838         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording): Deleted.
839         (.sidebar > .panel.navigation.timeline > .status-bar > .record-status): Deleted.
840         (.panel.timeline .navigation-bar.timelines-view): Deleted.
841         No longer used.
842
843         * UserInterface/Views/TimelineSidebarPanel.js:
844         Removed unused CSS static variables.
845         (WebInspector.TimelineSidebarPanel):
846         Create navigation bar, remove status bar DOM elements. Create keyboard shortcut
847         before the record button, so the shortcut's display name can be used in tooltips.
848         (WebInspector.TimelineSidebarPanel.prototype._capturingStartedOrStopped):
849         Update record button state and flexible space (status) text.
850         (WebInspector.TimelineSidebarPanel.prototype._recordButtonClicked):
851         Toggle recording state, and update record button state and flexible space (status) text.
852         (WebInspector.TimelineSidebarPanel.prototype._recordButtonMousedOver):
853         (WebInspector.TimelineSidebarPanel.prototype._recordButtonMousedOut):
854         Update flexible space (status) text.
855         (WebInspector.TimelineSidebarPanel.prototype._updateRecordButton):
856         (WebInspector.TimelineSidebarPanel.prototype._updateReplayInterfaceVisibility):
857         (WebInspector.TimelineSidebarPanel.prototype._toggleRecording): Deleted.
858         (WebInspector.TimelineSidebarPanel.prototype._capturingStarted): Deleted.
859         (WebInspector.TimelineSidebarPanel.prototype._capturingStopped): Deleted.
860         (WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOver): Deleted.
861         (WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOut): Deleted.
862         (WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked): Deleted.
863         No longer used.
864
865 2016-01-12  Matt Baker  <mattbaker@apple.com>
866
867         Web Inspector: Move helper methods for getting icons/text to TimelineTabContentView
868         https://bugs.webkit.org/show_bug.cgi?id=152996
869
870         Reviewed by Brian Burg.
871
872         In preparation for the Timelines UI redesign, helper methods which existed
873         in the sidebar panel and timeline tree elements need to be relocated,
874         since the sidebar won't exist in the new UI.
875
876         * UserInterface/Views/TimelineRecordTreeElement.js:
877         (WebInspector.TimelineRecordTreeElement):
878         Removed icon/title code, replaced with calls to new helper methods.
879         Code to create the alternate subtitle was broken out form the rest
880         of the icon/title code, and kept in the constructor.
881
882         * UserInterface/Views/TimelineRecordingContentView.js:
883         (WebInspector.TimelineRecordingContentView.prototype._instrumentAdded):
884         Updated calls to helper methods.
885
886         * UserInterface/Views/TimelineSidebarPanel.js:
887         (WebInspector.TimelineSidebarPanel.prototype._instrumentAdded):
888         (WebInspector.TimelineSidebarPanel.displayNameForTimeline): Deleted.
889         (WebInspector.TimelineSidebarPanel.iconClassNameForTimeline): Deleted.
890         Moved to TimelineTabContentView.
891
892         * UserInterface/Views/TimelineTabContentView.js:
893         (WebInspector.TimelineTabContentView.displayNameForTimeline):
894         (WebInspector.TimelineTabContentView.iconClassNameForTimeline):
895         Relocated from TimelineSidebarPanel.
896         (WebInspector.TimelineTabContentView.iconClassNameForRecord):
897         (WebInspector.TimelineTabContentView.displayNameForRecord):
898         New helper methods. Previously part of TimelineRecordTreeElement.
899
900 2016-01-12  Brian Burg  <bburg@apple.com>
901
902         Web Inspector: fix some common misspellings in localized strings
903         https://bugs.webkit.org/show_bug.cgi?id=153030
904         <rdar://problem/24153340>
905
906         Reviewed by Joseph Pecoraro.
907
908         Replace 'occured', 'transfered' with 'occurred' and 'transferred'.
909
910         * Localizations/en.lproj/localizedStrings.js:
911         * UserInterface/Views/DatabaseTableContentView.js:
912         (WebInspector.DatabaseTableContentView.prototype._queryError):
913         * UserInterface/Views/NetworkGridContentView.js:
914         (WebInspector.NetworkGridContentView):
915         * UserInterface/Views/NetworkTimelineView.js:
916         (WebInspector.NetworkTimelineView):
917         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
918         (WebInspector.ResourceDetailsSidebarPanel):
919
920 2016-01-12  Matt Baker  <mattbaker@apple.com>
921
922         Web Inspector: Fix DataGrid row disclosure appearance and behavior
923         https://bugs.webkit.org/show_bug.cgi?id=152991
924
925         Reviewed by Brian Burg.
926
927         * UserInterface/Views/DataGrid.css:
928         (.data-grid tr.parent td.disclosure::before):
929         Ensure triangle is vertically aligned for any row height.
930         (.data-grid tr:not(.parent) td.disclosure):
931         Fix indent size.
932
933         * UserInterface/Views/DataGrid.js:
934         (WebInspector.DataGridNode.prototype.createCell):
935         Added `icon` column property, encapsulate icon element creation.
936         (WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle):
937         Fix hit test logic by computing left padding.
938
939 2016-01-12  Devin Rousso  <dcrousso+webkit@gmail.com>
940
941         Web Inspector: REGRESSION (r194879) - Opening views without being previously opened causes an Uncaught Exception
942         https://bugs.webkit.org/show_bug.cgi?id=153006
943
944         Reviewed by Brian Burg.
945
946         * UserInterface/Views/MultipleScopeBarItem.js:
947         (WebInspector.MultipleScopeBarItem.prototype.displaySelectedItem):
948         If there is no selected item, default to the first item in the list.
949
950 2016-01-12  Devin Rousso  <dcrousso+webkit@gmail.com>
951
952         Web Inspector: creating a gradient in the Visual sidebar causes a crash
953         https://bugs.webkit.org/show_bug.cgi?id=153003
954
955         Reviewed by Brian Burg.
956
957         * UserInterface/Views/VisualStyleBackgroundPicker.js:
958         (WebInspector.VisualStyleBackgroundPicker.prototype._gradientSwatchClicked):
959         If a gradient does not already exist when the swatch is clicked, create a basic
960         gradient using the current type and two "transparent" color stops (a minimum of
961         two color stops are needed for a valid gradient).
962
963 2016-01-11  Devin Rousso  <dcrousso+webkit@gmail.com>
964
965         Web Inspector: Storage tab navigation bar should fit on a single line
966         https://bugs.webkit.org/show_bug.cgi?id=152473
967
968         Reviewed by Timothy Hatcher.
969
970         The wrapping of the navigation bar on the Storage tab was caused by the
971         fact that Sidebar.js used a minimum width of 200px, regardless of the
972         content within the sidebar (unless it had a NavigationBar). Logic has
973         been added that causes the sidebar to use the selected panel's own
974         minimum width calculation if it is greater than 200px.
975
976         * UserInterface/Views/DebuggerSidebarPanel.js:
977         (WebInspector.DebuggerSidebarPanel.prototype.get minimumWidth):
978
979         * UserInterface/Views/MultipleScopeBarItem.js:
980         (WebInspector.MultipleScopeBarItem.prototype.set selectedScopeBarItem):
981         (WebInspector.MultipleScopeBarItem.prototype.displaySelectedItem):
982         Sets the displayed text to the currently selected item.
983
984         (WebInspector.MultipleScopeBarItem.prototype.displayWidestItem):
985         Sets the displayed text to the widest (pixel wise) item in the select element.
986
987         * UserInterface/Views/NavigationBar.js:
988         (WebInspector.NavigationBar.prototype._calculateMinimumWidth):
989         Now uses NavigationItem.prototype.get minimumWidth.
990
991         * UserInterface/Views/NavitationItem.js:
992         (WebInspector.NavitationItem.prototype.get minimumWidth):
993         Returns the element's realOffsetWidth.
994
995         * UserInterface/Views/NetworkSidebarPanel.js:
996         (WebInspector.NetworkSidebarPanel.prototype.get minimumWidth):
997
998         * UserInterface/Views/ResourceSidebarPanel.js:
999         (WebInspector.ResourceSidebarPanel.prototype.get minimumWidth):
1000
1001         * UserInterface/Views/ScopeBar.js:
1002         (WebInspector.ScopeBar):
1003         (WebInspector.ScopeBar.prototype.get minimumWidth):
1004
1005         * UserInterface/Views/Sidebar.js:
1006         (WebInspector.Sidebar.prototype.set selectedSidebarPanel):
1007         (WebInspector.Sidebar.prototype.get minimumWidth):
1008         (WebInspector.Sidebar.prototype.set width):
1009         (WebInspector.Sidebar.prototype.set collapsed):
1010         (WebInspector.Sidebar.prototype._recalculateWidth):
1011         Whenever the sidebar changes (e.g. tab change, sidebar becomes
1012         visible/hidden, etc.), a width recalculation is necessary to ensure
1013         that the navigation bar never wraps.
1014
1015         * UserInterface/Views/SidebarPanel.js:
1016         (WebInspector.SidebarPanel.prototype.get minimumWidth):
1017
1018         * UserInterface/Views/StorageSidebarPanel.js:
1019         (WebInspector.StorageSidebarPanel.prototype.get minimumWidth):
1020
1021         * UserInterface/Views/TimelineSidebarPanel.js:
1022         (WebInspector.TimelineSidebarPanel.prototype.get minimumWidth):
1023
1024 2016-01-11  Devin Rousso  <dcrousso+webkit@gmail.com>
1025
1026         Web Inspector: Make Timelines view also remember sort order
1027         https://bugs.webkit.org/show_bug.cgi?id=152811
1028
1029         Reviewed by Timothy Hatcher.
1030
1031         Changeset r194574 introduced the ability for WebInspector.Setting objects to
1032         be passed to DataGrid instances to save the sort column for that grid. These
1033         changes also add the ability for the sort order to be save as well.
1034
1035         * UserInterface/Views/ApplicationCacheFrameContentView.js:
1036         (WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):
1037
1038         * UserInterface/Views/CookieStorageContentView.js:
1039         (WebInspector.CookieStorageContentView.prototype._rebuildTable):
1040
1041         * UserInterface/Views/DOMStorageContentView.js:
1042         (WebInspector.DOMStorageContentView):
1043
1044         * UserInterface/Views/DataGrid.js:
1045         (WebInspector.DataGrid):
1046         (WebInspector.DataGrid.prototype.set sortOrder):
1047         If a WebInspector.Setting object has been given, save the new sort order.
1048
1049         (WebInspector.DataGrid.prototype.set sortOrderSetting):
1050         Saves the given WebInspector.Setting object for modification whenever the user
1051         changes the sort order.
1052
1053         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
1054         (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
1055
1056         * UserInterface/Views/LayoutTimelineView.js:
1057         (WebInspector.LayoutTimelineView):
1058
1059         * UserInterface/Views/NetworkGridContentView.js:
1060         (WebInspector.NetworkGridContentView):
1061
1062         * UserInterface/Views/NetworkTimelineView.js:
1063         (WebInspector.NetworkTimelineView):
1064
1065         * UserInterface/Views/RenderingFrameTimelineView.js:
1066         (WebInspector.RenderingFrameTimelineView):
1067
1068         * UserInterface/Views/ScriptTimelineView.js:
1069         (WebInspector.ScriptTimelineView):
1070
1071 2016-01-11  Johan K. Jensen  <jj@johanjensen.dk>
1072
1073         Web Inspector: Copying JS object output from console shouldn't include trailing '= $n'
1074         https://bugs.webkit.org/show_bug.cgi?id=119347
1075
1076         Reviewed by Joseph Pecoraro.
1077
1078         * UserInterface/Views/ConsoleMessageView.js:
1079         (WebInspector.ConsoleMessageView.prototype.toClipboardString):
1080
1081 2016-01-11  Devin Rousso  <dcrousso+webkit@gmail.com>
1082
1083         Web Inspector: Add basic Content section to Visual Sidebar
1084         https://bugs.webkit.org/show_bug.cgi?id=152972
1085
1086         Reviewed by Timothy Hatcher.
1087
1088         Since the "content" property has so many different types of values, a
1089         simple text input editor should be added to provide some support for
1090         the CSS property until a better, more specialized editor is created.
1091
1092         * Localizations/en.lproj/localizedStrings.js:
1093
1094         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
1095         (.visual-style-property-container.comma-separated-keyword-editor):
1096         Moved margin-left to new rule in VisualStylePropertyEditor.css.
1097
1098         * UserInterface/Views/VisualStyleDetailsPanel.js:
1099         (WebInspector.VisualStyleDetailsPanel):
1100         (WebInspector.VisualStyleDetailsPanel.prototype._populateContentSection):
1101         Adds the basic editor under the Text section in a new subsection
1102         called Content.
1103
1104         * UserInterface/Views/VisualStylePropertyEditor.css:
1105         (.visual-style-property-container > *:first-child:matches(.visual-style-property-value-container)):
1106         Adds a left margin to property editors without a title.
1107
1108 2016-01-11  Devin Rousso  <dcrousso+webkit@gmail.com>
1109
1110         Web Inspector: Visual sidebar minor bug fixes
1111         https://bugs.webkit.org/show_bug.cgi?id=152967
1112
1113         Reviewed by Timothy Hatcher.
1114
1115         * UserInterface/Views/VisualStyleDetailsPanel.js:
1116         (WebInspector.VisualStyleDetailsPanel.prototype.refresh):
1117         Only update sections when it is not a significant change, as they are
1118         updated when the selector changes.
1119
1120         (WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
1121         Only reset links if the refresh is a significant change (node or selected
1122         style changes).
1123
1124         * UserInterface/Views/VisualStyleNumberInputBox.js:
1125         (WebInspector.VisualStyleNumberInputBox):
1126         (WebInspector.VisualStyleNumberInputBox.prototype.get value):
1127         Removed unreachable return.
1128
1129         (WebInspector.VisualStyleNumberInputBox.prototype.set value):
1130         (WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown.adjustValue):
1131         _updatedValues.propertyMissing was changed to _propertyMissing in a
1132         prior patch.
1133
1134 2016-01-11  Joseph Pecoraro  <pecoraro@apple.com>
1135
1136         Web Inspector: Migrate Page Timeline recording to ScriptProfiler
1137         https://bugs.webkit.org/show_bug.cgi?id=152727
1138
1139         Reviewed by Brian Burg.
1140
1141         * UserInterface/Images/TimelineRecordAPI.svg: Added.
1142         * UserInterface/Images/gtk/TimelineRecordAPI.svg: Added.
1143         New [S] image for API initiated script evaluations.
1144         Display matches the existing [S] Script Evaluated.
1145         Colors match the gray [N] Native image colors.
1146
1147         * UserInterface/Models/ScriptInstrument.js:
1148         (WebInspector.ScriptInstrument.prototype.startInstrumentation):
1149         (WebInspector.ScriptInstrument.prototype.stopInstrumentation):
1150         (WebInspector.ScriptInstrument):
1151         Use ScriptProfiler, if available, in Web debuggables.
1152
1153         * UserInterface/Controllers/TimelineManager.js:
1154         (WebInspector.TimelineManager):
1155         (WebInspector.TimelineManager.prototype.capturingStarted):
1156         (WebInspector.TimelineManager.prototype._processRecord):
1157         (WebInspector.TimelineManager.prototype._scriptProfilerTypeToScriptTimelineRecordType):
1158         (WebInspector.TimelineManager.prototype.scriptProfilerTrackingUpdated):
1159         (WebInspector.TimelineManager.prototype.scriptProfilerTrackingCompleted):
1160         (WebInspector.TimelineManager.prototype._mergeScriptProfileRecords.let.nextRecord):
1161         (WebInspector.TimelineManager.prototype._mergeScriptProfileRecords.let.recordContainsRecord):
1162         (WebInspector.TimelineManager.prototype._mergeScriptProfileRecords):
1163         When running a timeline on a web debuggable the frontend receives both
1164         Timeline event records and ScriptProfiler events. Timeline (Web) records
1165         are high level web events like "Script Evaluated", "Event Dispatched",
1166         "Timer Fired". The timestamps for these records should always be wrapping
1167         a ScriptProfiler event and its associated profile data. So, at the end
1168         of a recording we merge ScriptProfiler profile data into the original
1169         Timeline (Web) record.
1170
1171         * UserInterface/Models/ScriptTimelineRecord.js:
1172         (WebInspector.ScriptTimelineRecord.prototype.get profilePayload):
1173         (WebInspector.ScriptTimelineRecord.prototype.set profilePayload):
1174         (WebInspector.ScriptTimelineRecord.prototype.setProfilePayload): Deleted.
1175         Replace method with getter/setter.
1176
1177         (WebInspector.ScriptTimelineRecord.EventType.displayName):
1178         Add a new event type for API records, but share display name with Script Evaluated.
1179
1180         * UserInterface/Views/NavigationSidebarPanel.js:
1181         Fix typo.
1182
1183         * UserInterface/Views/ScriptTimelineView.css:
1184         (.timeline-view.script > .data-grid .eventType-column): Deleted.
1185         There is no "eventType" column in the ScriptTimelineView datagrid, so remove styles.
1186
1187         * UserInterface/Views/TimelineIcons.css:
1188         (.api-record .icon):
1189         * UserInterface/Views/TimelineRecordTreeElement.js:
1190         (WebInspector.TimelineRecordTreeElement):
1191         For API Script Evaluation records use the new icon.
1192
1193 2016-01-10  Joseph Pecoraro  <pecoraro@apple.com>
1194
1195         Web Inspector: Uncaught Exception selecting IndexedDB host folder in Storage tab
1196         https://bugs.webkit.org/show_bug.cgi?id=152943
1197
1198         Reviewed by Brian Burg.
1199
1200         * UserInterface/Views/NavigationSidebarPanel.js:
1201         (WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
1202         Another type of specialized folder tree element.
1203
1204 2016-01-10  Joseph Pecoraro  <pecoraro@apple.com>
1205
1206         Uncaught Exception: TypeError: undefined is not an object (evaluating 'this._scopeChain[i].object.deprecatedGetAllProperties')
1207         https://bugs.webkit.org/show_bug.cgi?id=152944
1208         <rdar://problem/24119827>
1209
1210         Reviewed by Brian Burg.
1211
1212         * UserInterface/Models/CallFrame.js:
1213         (WebInspector.CallFrame.prototype.collectScopeChainVariableNames):
1214         Missed one place where `object` needed to change to `objects`.
1215         Here the list will always contain a single object, only UI
1216         generated scopes for the sidebar may have multiple objects.
1217
1218 2016-01-10  Johan K. Jensen  <jj@johanjensen.dk>
1219
1220         Web Inspector: Dashboard log message count doesn't include console.time messages
1221         https://bugs.webkit.org/show_bug.cgi?id=151280
1222
1223         Reviewed by Brian Burg.
1224
1225         * UserInterface/Models/DefaultDashboard.js:
1226         (WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
1227         Make Info and Debug levels increment the log count.
1228
1229 2016-01-09  Dan Bernstein  <mitz@apple.com>
1230
1231         [Cocoa] Allow overriding the frameworks directory independently of using a staging install path
1232         https://bugs.webkit.org/show_bug.cgi?id=152926
1233
1234         Reviewed by Tim Horton.
1235
1236         Introduce a new build setting, WK_OVERRIDE_FRAMEWORKS_DIR. When not empty, it determines
1237         where the frameworks are installed. Setting USE_STAGING_INSTALL_PATH to YES sets
1238         WK_OVERRIDE_FRAMEWORKS_DIR to $(SYSTEM_LIBRARY_DIR)/StagedFrameworks/Safari.
1239
1240         Account for the possibility of WK_OVERRIDE_FRAMEWORKS_DIR containing spaces.
1241
1242         * Configurations/Base.xcconfig:
1243         - Replace STAGED_FRAMEWORKS_SEARCH_PATH in FRAMEWORK_SEARCH_PATHS with
1244           WK_OVERRIDE_FRAMEWORKS_DIR and add quotes to account for spaces.
1245         * Configurations/WebInspectorUIFramework.xcconfig:
1246         - Define INSTALL_PATH and PRODUCTION_FRAMEWORKS_DIR based on WK_OVERRIDE_FRAMEWORKS_DIR.
1247
1248 2016-01-08  Joseph Pecoraro  <pecoraro@apple.com>
1249
1250         Web Inspector: Test Resources should not be included in Production builds unless FORCE_TOOL_INSTALL
1251         https://bugs.webkit.org/show_bug.cgi?id=152941
1252         <rdar://problem/24119013>
1253
1254         Reviewed by Dan Bernstein.
1255
1256         * Configurations/Base.xcconfig:
1257         Combine inspector resources in production, but not test resources.
1258
1259         * Configurations/DebugRelease.xcconfig:
1260         Do not combine inspector resources in Release/Debug. Combine test resources.
1261
1262         * Configurations/WebInspectorUIFramework.xcconfig:
1263         Simplify by moving to other config files.
1264
1265         * Scripts/copy-user-interface-resources.pl:
1266         Have FORCE_TOOL_INSTALL combine test resources as well.
1267
1268         * WebInspectorUI.vcxproj/build-webinspectorui.pl:
1269         Only combine test resources in non-Production.
1270
1271 2016-01-08  Joseph Pecoraro  <pecoraro@apple.com>
1272
1273         Web Inspector: Initiated section of Resource Details Sidebar should not display as empty and should update as the list changes
1274         https://bugs.webkit.org/show_bug.cgi?id=152907
1275         <rdar://problem/24109927>
1276
1277         Reviewed by Timothy Hatcher.
1278
1279         * UserInterface/Models/Resource.js:
1280         (WebInspector.Resource.prototype.addInitiatedResource):
1281         Dispatch an event when the list of initiated resources changes.
1282
1283         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
1284         (WebInspector.ResourceDetailsSidebarPanel.prototype.set resource):
1285         Add/remove event listeners for initiated resources changes to refresh
1286         the related resources section.
1287
1288         (WebInspector.ResourceDetailsSidebarPanel.prototype.refresh):
1289         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
1290         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRelatedResourcesSection):
1291         Show/hide the related resources section depending on if we have something or not.
1292
1293 2016-01-08  Joseph Pecoraro  <pecoraro@apple.com>
1294
1295         Web Inspector: Uncaught exception: TypeError: this._initiatorSourceCodeLocation.sourceCode.addInitiatedResource is not a function
1296         https://bugs.webkit.org/show_bug.cgi?id=152905
1297         <rdar://problem/24109809>
1298
1299         Reviewed by Brian Burg.
1300
1301         * UserInterface/Models/Resource.js:
1302         (WebInspector.Resource):
1303         (WebInspector.Resource.prototype.addInitiatedResource):
1304         Only Resource has addInitiatedResource, so only call it if the
1305         SourceCode in the SourceCodeLocation is a Resource.
1306
1307 2016-01-07  Devin Rousso  <dcrousso+webkit@gmail.com>
1308
1309         Web Inspector: Add warnings to section that require specific values of other properties
1310         https://bugs.webkit.org/show_bug.cgi?id=148254
1311
1312         Reviewed by Timothy Hatcher.
1313
1314         Added a function to VisualStylePropertyEditor to allow dependencies to be set which,
1315         whenever the editor is updated or changed, will be checked against the computed styles
1316         of the element to see if all the necessary property values are set.
1317
1318         * Localizations/en.lproj/localizedStrings.js:
1319         * UserInterface/Views/VisualStyleDetailsPanel.js:
1320         (WebInspector.VisualStyleDetailsPanel):
1321         (WebInspector.VisualStyleDetailsPanel.prototype.refresh):
1322         (WebInspector.VisualStyleDetailsPanel.prototype._populatePositionSection):
1323         (WebInspector.VisualStyleDetailsPanel.prototype._populateFlexboxSection):
1324         (WebInspector.VisualStyleDetailsPanel.prototype._populateAlignmentSection):
1325         (WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
1326         (WebInspector.VisualStyleDetailsPanel.prototype._populateOutlineSection):
1327         Added dependencies to relevant property editors.
1328
1329         (WebInspector.VisualStyleDetailsPanel.prototype._prepareForChange): Deleted.
1330         No longer needed as the sidebar panel will refresh whenever triggered.
1331
1332         * UserInterface/Views/VisualStylePropertyEditor.css:
1333         (.visual-style-property-container.layout-reversed > .visual-style-property-title):
1334         (.visual-style-property-container > .visual-style-property-title > .property-reference-info):
1335         (.visual-style-property-container > .visual-style-property-editor-warning):
1336         (.visual-style-property-container.layout-reversed > .visual-style-property-editor-warning):
1337         (.visual-style-property-container > .visual-style-property-editor-warning.missing-dependency):
1338         (.visual-style-property-container > .visual-style-property-value-container):
1339         (.visual-style-property-container.layout-reversed > .visual-style-property-value-container):
1340
1341         * UserInterface/Views/VisualStylePropertyEditor.js:
1342         (WebInspector.VisualStylePropertyEditor):
1343         (WebInspector.VisualStylePropertyEditor.prototype.updateEditorValues):
1344         (WebInspector.VisualStylePropertyEditor.prototype.addDependency):
1345         (WebInspector.VisualStylePropertyEditor.prototype._valueDidChange):
1346         (WebInspector.VisualStylePropertyEditor.prototype._checkDependencies):
1347         Looks at the computed style for the node to see if any dependent properties do not
1348         have one of the required values.
1349
1350         * UserInterface/Views/VisualStyleSelectorSection.js:
1351         (WebInspector.VisualStyleSelectorSection.prototype.update.createSelectorItem):
1352         (WebInspector.VisualStyleSelectorSection.prototype._styleTextReset): Deleted.
1353
1354         * UserInterface/Views/VisualStyleSelectorTreeItem.js:
1355         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
1356
1357 2016-01-07  Devin Rousso  <dcrousso+webkit@gmail.com>
1358
1359         Web Inspector: Allow error items on Exception page to be selected
1360         https://bugs.webkit.org/show_bug.cgi?id=152861
1361
1362         Reviewed by Brian Burg.
1363
1364         * UserInterface/Debug/UncaughtExceptionReporter.css:
1365         (.uncaught-exception-sheet li):
1366         Allowed user-select on text.
1367
1368 2016-01-07  Devin Rousso  <dcrousso+webkit@gmail.com>
1369
1370         Web Inspector: Add border-image properties to Visual sidebar
1371         https://bugs.webkit.org/show_bug.cgi?id=152755
1372
1373         Reviewed by Timothy Hatcher.
1374
1375         * Localizations/en.lproj/localizedStrings.js:
1376         * UserInterface/Main.html:
1377         Switched the order of VisualStyleURLInput and VisualStyleUnitSlider
1378         to be ordered alphabetically.
1379
1380         * UserInterface/Views/VisualStyleBackgroundPicker.js:
1381         (WebInspector.VisualStyleBackgroundPicker.prototype._keywordSelectMouseDown):
1382
1383         * UserInterface/Views/VisualStyleDetailsPanel.css:
1384         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content > .group + .group > .row:first-child):
1385         (.sidebar > .panel.details.css-style .visual > .details-section.background .details-section.border .visual-style-property-container.keyword-checkbox.border-image-slice):
1386         Since the checkbox is so small, give it less room.
1387
1388         * UserInterface/Views/VisualStyleDetailsPanel.js:
1389         (WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection.generateBorderImagePropertyEditors):
1390         The three properties "border-image-width", "border-image-outset", and
1391         "border-image-slice" all have the same syntax, so one function to generate
1392         the layout for all three is much simpler.
1393
1394         (WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
1395         Added the border image properties to a seperate group under Background > Border.
1396
1397         * UserInterface/Views/VisualStyleKeywordPicker.js:
1398         (WebInspector.VisualStyleKeywordPicker.prototype._keywordSelectMouseDown):
1399
1400         * UserInterface/Views/VisualStyleNumberInputBox.js:
1401         (WebInspector.VisualStyleNumberInputBox):
1402         (WebInspector.VisualStyleNumberInputBox.prototype.set units):
1403         Reordered logic to allow a value of ""/null to set the units to the "Number"
1404         value if it is allowed for that editor.
1405
1406         (WebInspector.VisualStyleNumberInputBox.prototype.get synthesizedValue):
1407         Instead of relying upon whether the editor has any units, just check to see if
1408         the selected units are "Number" and, if not, add them to the value.
1409
1410         (WebInspector.VisualStyleNumberInputBox.prototype._unitsElementTextContent):
1411
1412         * UserInterface/Views/VisualStylePropertyCombiner.js:
1413         (WebInspector.VisualStylePropertyCombiner):
1414         Now has another argument that, when true, assumes the combiner has at least 4
1415         numerical values and is of the form (can have units):
1416             property-name: value1 [value2 [value3 [value4 [...]]]];
1417
1418         (WebInspector.VisualStylePropertyCombiner.prototype.get synthesizedValue):
1419         (WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText.updateEditor):
1420         (WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText.updateCompatibleEditor):
1421         (WebInspector.VisualStylePropertyCombiner.prototype.updateValuesFromText):
1422         If the new argument is true, assigns the existing values in the following way:
1423          - If there is 1 value, assign it to all of the editors.
1424          - If there are 2 values, assign the 1st one to editors 1 and 3 and the 2nd one
1425             to editors 2 and 4.
1426          - If there are 3 values, assign the 1st one to editor 1, the 2nd one to editors
1427             2 and 4, and the 3rd one to editor 3.
1428          - If there are 4 or more values, assign them normally.
1429
1430         * UserInterface/Views/VisualStylePropertyEditor.js:
1431         (WebInspector.VisualStylePropertyEditor.prototype.valueIsSupportedKeyword):
1432         (WebInspector.VisualStylePropertyEditor.prototype._valueIsSupportedAdvancedKeyword):
1433         Removed call to this.value to prevent recursion from VisualStyleNumberInputBox.
1434
1435         (WebInspector.VisualStylePropertyEditor.prototype.valueIsSupportedUnit):
1436         (WebInspector.VisualStylePropertyEditor.prototype._valueIsSupportedAdvancedUnit):
1437         Removed call to this.units to prevent recursion from VisualStyleNumberInputBox.
1438
1439 2016-01-07  Devin Rousso  <dcrousso+webkit@gmail.com>
1440
1441         Web Inspector: Add indicator that element has pseudo-class in DOM tree
1442         https://bugs.webkit.org/show_bug.cgi?id=152680
1443
1444         Reviewed by Timothy Hatcher.
1445
1446         * UserInterface/Views/DOMTreeElement.js:
1447         (WebInspector.DOMTreeElement):
1448         (WebInspector.DOMTreeElement.prototype._nodePseudoClassesDidChange):
1449         Added an event listener to the node for when pseudo-classes change.
1450
1451         * UserInterface/Views/DOMTreeOutline.css:
1452         (.dom-tree-outline li.pseudo-class-enabled > .selection::before):
1453         (.dom-tree-outline:focus li.selected.pseudo-class-enabled > .selection::before):
1454         Used the hover/selected background style element to ensure that the indicator
1455         is always positioned evenly with the first line of the opening tag.
1456
1457         (.dom-tree-outline li.hovered:not(.selected) .selection):
1458         (.dom-tree-outline li .selection):
1459         (.dom-tree-outline li.selected .selection):
1460         (.dom-tree-outline li.elements-drag-over .selection):
1461         Removed "display: none;" (as well as the "block" declarations) to allow
1462         the ::before pseudo-element to display.
1463
1464 2016-01-07  Devin Rousso  <dcrousso+webkit@gmail.com>
1465
1466         Web Inspector: Make creating new rules in the Styles sidebar simpler
1467         https://bugs.webkit.org/show_bug.cgi?id=152726
1468
1469         Reviewed by Timothy Hatcher.
1470
1471         When creating a new rules of any kind, first look to see if it already exists in
1472         another rule that has no properties. If found, focus/select it instead of creating
1473         a new rule. Otherwise, create the new rule like normal.
1474
1475         Also changed the way in which previously-focused sections/tree-items are saved
1476         to rely upon the selector of the new rule and whether the section for that rule
1477         is empty and an inspector rule.
1478
1479         * Localizations/en.lproj/localizedStrings.js:
1480
1481         * UserInterface/Models/CSSStyleDeclaration.js:
1482         (WebInspector.CSSStyleDeclaration.prototype.isInspectorRule):
1483         Returns true if the style is an inspector rule.
1484
1485         (WebInspector.CSSStyleDeclaration.prototype.hasProperties):
1486         Returns true if the style has CSS properties.
1487
1488         * UserInterface/Models/DOMNodeStyles.js:
1489         (WebInspector.DOMNodeStyles.prototype.rulesForSelector.ruleHasSelector):
1490         (WebInspector.DOMNodeStyles.prototype.rulesForSelector):
1491         Returns a list of CSSRule that match the given selector and are not
1492         in media queries.
1493
1494         * UserInterface/Views/BoxModelDetailsSectionRow.js:
1495         (WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics):
1496
1497         * UserInterface/Views/CSSStyleDeclarationSection.js:
1498         (WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent):
1499
1500         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1501         (WebInspector.CSSStyleDeclarationTextEditor.prototype.commentAllProperties):
1502
1503         * UserInterface/Views/RulesStyleDetailsPanel.js:
1504         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
1505         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.cssStyleDeclarationSectionEditorFocused):
1506         Now saves the newly focused section as the previously-focused section.
1507
1508         (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionFocusNewInspectorRuleWithSelector):
1509         Renamed from cssStyleDeclarationSectionFocusNextNewInspectorRule. Now needs
1510         a selector argument.
1511
1512         (WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):
1513         (WebInspector.RulesStyleDetailsPanel.prototype.sectionForStyle):
1514         Returns the first section that has a style with matching selector.
1515
1516         (WebInspector.RulesStyleDetailsPanel.prototype.focusEmptySectionWithStyle):
1517         Finds the section corresponding to the given style and, if empty, focuses it.
1518
1519         (WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
1520         No longer clears the previously-focused section.
1521
1522         * UserInterface/Views/VisualStyleSelectorSection.js:
1523         (WebInspector.VisualStyleSelectorSection):
1524         (WebInspector.VisualStyleSelectorSection.prototype.update.createSelectorItem):
1525         (WebInspector.VisualStyleSelectorSection.prototype.update):
1526         (WebInspector.VisualStyleSelectorSection.prototype.treeItemForStyle):
1527         Returns the first tree item that has a style with matching selector.
1528
1529         (WebInspector.VisualStyleSelectorSection.prototype.selectEmptyStyleTreeItem):
1530         Finds the tree item corresponding to the given style and, if empty, selects it.
1531
1532         (WebInspector.VisualStyleSelectorSection.prototype._addNewRule):
1533
1534         * UserInterface/Views/VisualStyleSelectorTreeItem.js:
1535         (WebInspector.VisualStyleSelectorTreeItem):
1536         Now requires a delegate object.
1537
1538         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
1539
1540 2016-01-06  Joseph Pecoraro  <pecoraro@apple.com>
1541
1542         Web Inspector: CRASH Attempting to pause on CSP violation not inside of script
1543         https://bugs.webkit.org/show_bug.cgi?id=152825
1544         <rdar://problem/24021276>
1545
1546         Reviewed by Timothy Hatcher.
1547
1548         * UserInterface/Test/TestHarness.js:
1549         (TestHarness.prototype.expectThat):
1550         (TestHarness.prototype.pass):
1551         (TestHarness.prototype.fail):
1552         Add a simple way to output a standard pass/fail message. These are
1553         often nicer than expectThat(true, ...) or assert(false, ...).
1554
1555 2016-01-07  Joseph Pecoraro  <pecoraro@apple.com>
1556
1557         Web Inspector: DOMContentLoaded label in the Timeline tab should be "DOM Content Loaded"
1558         https://bugs.webkit.org/show_bug.cgi?id=152746
1559
1560         Reviewed by Timothy Hatcher.
1561
1562         * Localizations/en.lproj/localizedStrings.js:
1563         * UserInterface/Views/TimelineRuler.js:
1564         (WebInspector.TimelineRuler.prototype.addMarker):
1565
1566 2016-01-06  Joseph Pecoraro  <pecoraro@apple.com>
1567
1568         Web Inspector: Scope chain shows too many scopes for functions (`let` and `var` in the same function are two scopes)
1569         https://bugs.webkit.org/show_bug.cgi?id=152349
1570
1571         Reviewed by Timothy Hatcher.
1572
1573         * Localizations/en.lproj/localizedStrings.js:
1574         New "Closure Variables (%s)" string for including the function name alongside
1575         the closure scope section.
1576
1577         * UserInterface/Models/ScopeChainNode.js:
1578         (WebInspector.ScopeChainNode):
1579         (WebInspector.ScopeChainNode.prototype.get objects):
1580         (WebInspector.ScopeChainNode.prototype.get object): Deleted.
1581         Allow a ScopeChainNode to hold onto multiple RemoteObjects (for multiple JSScopes).
1582
1583         * UserInterface/Controllers/DebuggerManager.js:
1584         (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
1585         Simplify the legacy case and convert "Local" to "Closure". The UI will now
1586         determine and display "Local" where appropriate in a backwards compatible way.
1587
1588         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
1589         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
1590         Associate ScopeChain nodes with CallFrame frames so that we can better combine
1591         variable sections and better label closure sections.
1592
1593         * UserInterface/Views/ScopeChainDetailsSidebarPanel.css:
1594         (.scope-chain .details-section > .content > .group > .row.properties:not(.empty)):
1595         (.scope-chain .details-section > .content > .group > .row.properties:not(.empty):last-child):
1596         Styles for two object trees property sections next to eachother.
1597
1598 2016-01-06  Devin Rousso  <dcrousso+webkit@gmail.com>
1599
1600         Web Inspector: Add basic Animation section to Visual Sidebar
1601         https://bugs.webkit.org/show_bug.cgi?id=152692
1602
1603         Reviewed by Timothy Hatcher.
1604
1605         Adds a non-autocompleting section to the "Effects" section (renamed from
1606         "Animations") of the Visual sidebar for setting CSS Animation values.
1607
1608         * Scripts/copy-user-interface-resources.pl:
1609         * Localizations/en.lproj/localizedStrings.js:
1610         * UserInterface/Images/AnimationPlayStatePaused.svg: Added.
1611         * UserInterface/Images/AnimationPlayStateRunning.svg: Added.
1612         * UserInterface/Main.html:
1613
1614         * UserInterface/Views/VisualStyleBasicInput.js: Added.
1615         (WebInspector.VisualStyleBasicInput):
1616         (WebInspector.VisualStyleBasicInput.prototype.get value):
1617         (WebInspector.VisualStyleBasicInput.prototype.set value):
1618         (WebInspector.VisualStyleBasicInput.prototype.get synthesizedValue):
1619         (WebInspector.VisualStyleBasicInput.prototype._handleInputElementInput):
1620         Very basic editor that is just an input box with a given placeholder.
1621
1622         * UserInterface/Views/VisualStyleDetailsPanel.js:
1623         (WebInspector.VisualStyleDetailsPanel):
1624         (WebInspector.VisualStyleDetailsPanel.prototype._populateAnimationSection):
1625         Creates the necessary property editors and adds them to their respective rows.
1626
1627 2016-01-06  Devin Rousso  <dcrousso+webkit@gmail.com>
1628
1629         Web Inspector: Add remaining background style properties to Visual sidebar
1630         https://bugs.webkit.org/show_bug.cgi?id=152757
1631
1632         Reviewed by Timothy Hatcher.
1633
1634         * Localizations/en.lproj/localizedStrings.js:
1635
1636         * UserInterface/Views/VisualStyleDetailsPanel.js:
1637         (WebInspector.VisualStyleDetailsPanel.prototype._populateBackgroundStyleSection):
1638         Added background-blend-mode and background-origin property editors.
1639
1640         * UserInterface/Views/VisualStyleSelectorSection.js:
1641         (WebInspector.VisualStyleSelectorSection.prototype._handleMouseOver):
1642         Unrelated error that occurred when the user was hovering over a selector item
1643         before the tree outline was able to create the selected item.
1644
1645 2016-01-05  Joseph Pecoraro  <pecoraro@apple.com>
1646
1647         REGRESSION(r187929): Web Inspector: Forced Layout and Style Recalculation records do not show up in Layout & Rendering timeline DataGrid
1648         https://bugs.webkit.org/show_bug.cgi?id=152747
1649
1650         Reviewed by Timothy Hatcher.
1651
1652         * UserInterface/Views/LayoutTimelineView.js:
1653         (WebInspector.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
1654         We want top-level Layout records. Not necessarily Layout records that are
1655         at the top of all records. Layout events such as style recalculation
1656         and forced layout may be triggered by script and therefore not be at
1657         the top of all records.
1658
1659 2016-01-04  Devin Rousso  <dcrousso+webkit@gmail.com>
1660
1661         Web Inspector: Timelines view doesn't remember how I like to sort things
1662         https://bugs.webkit.org/show_bug.cgi?id=152626
1663
1664         Reviewed by Joseph Pecoraro.
1665
1666         Currently, all instances of DataGrid have their sort column reset with each
1667         open/close of Web Inspector. This doesn't really make sense seeing as we save
1668         the user's settings in many other cases, so the sort method (which column)
1669         should be saved between inspector sessions.
1670
1671         * UserInterface/Views/ApplicationCacheFrameContentView.js:
1672         (WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):
1673         * UserInterface/Views/CookieStorageContentView.js:
1674         (WebInspector.CookieStorageContentView.prototype._rebuildTable):
1675         * UserInterface/Views/DOMStorageContentView.js:
1676         (WebInspector.DOMStorageContentView):
1677         * UserInterface/Views/DataGrid.js:
1678         (WebInspector.DataGrid):
1679         (WebInspector.DataGrid.prototype.set sortColumnIdentifier):
1680         Moved the logic for classLists and events to _updateSortedColumn.
1681
1682         (WebInspector.DataGrid.prototype.set sortColumnIdentifierSetting):
1683         Instead of just setting the original sort method when instantiating the DataGrid,
1684         a WebInspector.Setting object is now able to be passed in via this setter
1685         to give the DataGrid access to the stored sort method value.
1686
1687         (WebInspector.DataGrid.prototype._updateSortedColumn):
1688         Updates the classLists and fires events. If a sort column setting object
1689         exists, update its value.
1690
1691         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
1692         (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
1693         * UserInterface/Views/LayoutTimelineView.js:
1694         (WebInspector.LayoutTimelineView):
1695         * UserInterface/Views/NetworkGridContentView.js:
1696         (WebInspector.NetworkGridContentView):
1697         * UserInterface/Views/NetworkTimelineView.js:
1698         (WebInspector.NetworkTimelineView):
1699         * UserInterface/Views/RenderingFrameTimelineView.js:
1700         (WebInspector.RenderingFrameTimelineView):
1701         * UserInterface/Views/ScriptTimelineView.js:
1702         (WebInspector.ScriptTimelineView):
1703
1704 2016-01-04  Devin Rousso  <dcrousso+webkit@gmail.com>
1705
1706         Web Inspector: Add debounce to URL inputs in the Visual sidebar
1707         https://bugs.webkit.org/show_bug.cgi?id=152655
1708
1709         Reviewed by Joseph Pecoraro.
1710
1711         Adding a debounce to url() based Visual sidebar editors will prevent needless
1712         errors from being thrown as the user types, since incomplete URL's will not
1713         be able to be located.
1714
1715         * UserInterface/Base/Utilities.js:
1716         (Function.prototype.debounce):
1717         Prevents the given function from executing more than once in the specified amount of time.
1718
1719         * UserInterface/Views/VisualStyleBackgroundPicker.js:
1720         (WebInspector.VisualStyleBackgroundPicker):
1721
1722         * UserInterface/Views/VisualStyleURLInput.js:
1723         (WebInspector.VisualStyleURLInput):
1724
1725 2016-01-04  Joseph Pecoraro  <pecoraro@apple.com>
1726
1727         Web Inspector: Fix debug context menu string and reload without cache tooltip string
1728         https://bugs.webkit.org/show_bug.cgi?id=152725
1729
1730         Reviewed by Brian Burg.
1731
1732         * UserInterface/Base/Main.js:
1733         (WebInspector.contentLoaded):
1734
1735 2016-01-04  Devin Rousso  <dcrousso+webkit@gmail.com>
1736
1737         Web Inspector: add context menu items to switch CSS color property value syntax between RGB, HSL, etc
1738         https://bugs.webkit.org/show_bug.cgi?id=151918
1739
1740         Reviewed by Timothy Hatcher.
1741
1742         Created a ColorSwatch class to hold all functionality for color swatches,
1743         allowing all context menu and popover events to be centralized.
1744
1745         * Localizations/en.lproj/localizedStrings.js:
1746         * UserInterface/Main.html:
1747
1748         * UserInterface/Models/Color.js:
1749         Changed all 'var' to 'let' and 'nickname' to 'keyword' as per the spec.
1750         Mostly mechanical changes.
1751
1752         (WebInspector.Color.prototype.isKeyword):
1753         Looks at the RGB values of each keyword to see if the current color
1754         matches any of them.
1755
1756         (WebInspector.Color.prototype.canBeSerializedAsShortHEX):
1757         Fixed to account for alpha values, since HEXAlpha is now supported.
1758
1759         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1760         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch): Deleted.
1761         (@media (-webkit-max-device-pixel-ratio: 1)): Deleted.
1762         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch > span): Deleted.
1763         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch:hover > span): Deleted.
1764         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch:active > span): Deleted.
1765
1766         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1767         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches.update):
1768         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
1769         (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchColorChanged.update):
1770         (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchColorChanged):
1771         (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror.update): Deleted.
1772         (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror): Deleted.
1773         (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked): Deleted.
1774
1775         * UserInterface/Views/ColorSwatch.css: Copied from Source/WebInspectorUI/UserInterface/Views/VisualStyleColorPicker.css.
1776         (.color-swatch):
1777         (@media (-webkit-max-device-pixel-ratio: 1)):
1778         (.color-swatch > span):
1779         (.color-swatch:hover > span):
1780         (.color-swatch:active > span):
1781
1782         * UserInterface/Views/ColorSwatch.js: Added.
1783         (WebInspector.ColorSwatch):
1784         (WebInspector.ColorSwatch.prototype.get element):
1785         (WebInspector.ColorSwatch.prototype.set color):
1786         (WebInspector.ColorSwatch.prototype.get color):
1787         (WebInspector.ColorSwatch.prototype._colorSwatchClicked):
1788         (WebInspector.ColorSwatch.prototype._colorPickerColorDidChange):
1789         (WebInspector.ColorSwatch.prototype._handleContextMenuEvent):
1790         (WebInspector.ColorSwatch.prototype._getNextValidHEXFormat.hexMatchesCurrentColor):
1791         (WebInspector.ColorSwatch.prototype._getNextValidHEXFormat):
1792         Loops through the list of HEX formats to find the first format that is valid
1793         for the current color in the list after the current format.
1794
1795         (WebInspector.ColorSwatch.prototype._updateSwatch):
1796
1797         * UserInterface/Views/VisualStyleColorPicker.css:
1798         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch):
1799         (.visual-style-property-container.input-color-picker > .visual-style-property-value-container > .color-swatch > span):
1800
1801         * UserInterface/Views/VisualStyleColorPicker.js:
1802         (WebInspector.VisualStyleColorPicker):
1803         (WebInspector.VisualStyleColorPicker.prototype._colorSwatchColorChanged):
1804         (WebInspector.VisualStyleColorPicker.prototype._updateColorSwatch):
1805         (WebInspector.VisualStyleColorPicker.prototype._colorSwatchClicked): Deleted.
1806         (WebInspector.VisualStyleColorPicker.prototype._colorPickerColorDidChange): Deleted.
1807
1808 2016-01-04  Joseph Pecoraro  <pecoraro@apple.com>
1809
1810         Web Inspector: Mark last parameter of webkitGetUserMedia as non-optional to match updated IDL
1811         https://bugs.webkit.org/show_bug.cgi?id=152702
1812
1813         Reviewed by Brian Burg.
1814
1815         * UserInterface/Models/NativeFunctionParameters.js:
1816         New IDL, and tests, show that the error callback is non-optional.
1817
1818 2016-01-04  Devin Rousso  <dcrousso+webkit@gmail.com>
1819
1820         Web Inspector: Add context menu items to CSS selectors to auto-generate pseudo selectors
1821         https://bugs.webkit.org/show_bug.cgi?id=152657
1822
1823         Reviewed by Timothy Hatcher.
1824
1825         Instead of having to copy a selector, create a new one, paste it, and then add
1826         a pseudo class or element, a context menu item has been added to automate this
1827         process for the user for each CSS pseudo-selector.
1828
1829         * Localizations/en.lproj/localizedStrings.js:
1830
1831         * UserInterface/Controllers/CSSStyleManager.js:
1832         Added a static object containing the list of CSS pseudo-element names.
1833
1834         * UserInterface/Models/DOMNodeStyles.js:
1835         (WebInspector.DOMNodeStyles.prototype.addRule.completed):
1836         (WebInspector.DOMNodeStyles.prototype.addRule.styleChanged):
1837         (WebInspector.DOMNodeStyles.prototype.addRule.addedRule):
1838         (WebInspector.DOMNodeStyles.prototype.addRule):
1839         Now accepts a second argument for setting the starting text value of the new rule.
1840
1841         * UserInterface/Views/CSSStyleDeclarationSection.js:
1842         (WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste):
1843
1844         * UserInterface/Views/VisualStyleSelectorTreeItem.js:
1845         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
1846
1847 2016-01-04  Brian Burg  <bburg@apple.com>
1848
1849         Web Inspector: add a DebugUI context menu item for saving inspector protocol traffic to file
1850         https://bugs.webkit.org/show_bug.cgi?id=152671
1851
1852         Reviewed by Timothy Hatcher.
1853
1854         Add a new tracer that captures all messages, and debug context menu
1855         items to control whether to capture protocol traffic and export it.
1856         In later patches, a reciprocal "Import..." context menu item will
1857         allow opening saved protocol traces and viewing them in a debug UI
1858         content view for debugging/visualizing protocol traffic.
1859
1860         * UserInterface/Base/Main.js:
1861         * UserInterface/Debug/CapturingProtocolTracer.js: Copied from Source/WebInspectorUI/UserInterface/Protocol/ProtocolTracer.js.
1862
1863             This tracer saves everything into a flat array. JSON protocol
1864             messages are saved as escaped strings, in case they are not
1865             valid JSON. We want to be able to debug such scenarios.
1866
1867         (WebInspector.CapturingProtocolTracer):
1868         (WebInspector.CapturingProtocolTracer.prototype.get trace):
1869         (WebInspector.CapturingProtocolTracer.prototype.logFrontendException):
1870         (WebInspector.CapturingProtocolTracer.prototype.logProtocolError):
1871         (WebInspector.CapturingProtocolTracer.prototype.logFrontendRequest):
1872         (WebInspector.CapturingProtocolTracer.prototype.logDidHandleResponse):
1873         (WebInspector.CapturingProtocolTracer.prototype.logDidHandleEvent):
1874         (WebInspector.CapturingProtocolTracer.prototype._stringifyMessage):
1875         (WebInspector.CapturingProtocolTracer.prototype._processEntry):
1876
1877         * UserInterface/Debug/ProtocolTrace.js: Added.
1878
1879             This is a dumb container that holds protocol trace data. It will
1880             be responsible for deserializing saved trace files in later work.
1881
1882         (WebInspector.ProtocolTrace):
1883         (WebInspector.ProtocolTrace.prototype.addEntry):
1884         (WebInspector.ProtocolTrace.prototype.get saveData):
1885         * UserInterface/Main.html:
1886         * UserInterface/Protocol/InspectorBackend.js:
1887         (InspectorBackendClass):
1888
1889             Simplify the implementation. Now there are one or two tracers
1890             at any given time. The default tracer handles legacy logging
1891             behavior and always exists. The custom tracer is installed when
1892             the "Capture Protocol Traffic" context menu item is toggled.
1893
1894             Dispatch to the array of active tracers at each trace point.
1895             Tracers now get the actual JSON message instead of a stringified
1896             version passed as an argument.
1897
1898         (InspectorBackendClass.prototype.set dumpInspectorProtocolMessages):
1899         (InspectorBackendClass.prototype.get dumpInspectorProtocolMessages):
1900         (InspectorBackendClass.prototype.set dumpInspectorTimeStats):
1901         (InspectorBackendClass.prototype.set customTracer):
1902         (InspectorBackendClass.prototype.get activeTracers):
1903         (InspectorBackendClass.prototype._startOrStopAutomaticTracing):
1904         (InspectorBackendClass.prototype._sendMessageToBackend):
1905         (InspectorBackendClass.prototype._dispatchResponse):
1906         (InspectorBackendClass.prototype._dispatchEvent):
1907         (InspectorBackendClass.prototype.set activeTracer): Deleted.
1908         (InspectorBackendClass.prototype.get activeTracer): Deleted.
1909         * UserInterface/Protocol/LoggingProtocolTracer.js:
1910         (WebInspector.LoggingProtocolTracer.prototype._processEntry):
1911         (WebInspector.LoggingProtocolTracer):
1912         (WebInspector.LoggingProtocolTracer.prototype.logFrontendRequest):
1913         (WebInspector.LoggingProtocolTracer.prototype.logWillHandleResponse):
1914         (WebInspector.LoggingProtocolTracer.prototype.logDidHandleResponse):
1915         (WebInspector.LoggingProtocolTracer.prototype.logWillHandleEvent):
1916         (WebInspector.LoggingProtocolTracer.prototype.logDidHandleEvent):
1917         * UserInterface/Protocol/ProtocolTracer.js:
1918         (WebInspector.ProtocolTracer.prototype.logFrontendException):
1919         (WebInspector.ProtocolTracer.prototype.logProtocolError):
1920         (WebInspector.ProtocolTracer.prototype.logFrontendRequest):
1921         (WebInspector.ProtocolTracer.prototype.logWillHandleResponse):
1922         (WebInspector.ProtocolTracer.prototype.logDidHandleResponse):
1923         (WebInspector.ProtocolTracer.prototype.logWillHandleEvent):
1924         (WebInspector.ProtocolTracer.prototype.logDidHandleEvent):
1925
1926 2016-01-04  Devin Rousso  <dcrousso+webkit@gmail.com>
1927
1928         Web Inspector: Comma separated values in the Visual sidebar are appended with )
1929         https://bugs.webkit.org/show_bug.cgi?id=152653
1930
1931         Reviewed by Timothy Hatcher.
1932
1933         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
1934         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set value):
1935         Modified the RexExp used to split the comma separated value to account for strings
1936         with commas inside parenthesis (such as rgba() or hsla()) as well as ones without
1937         commas (such as "arial" and "red").
1938
1939 2016-01-03  Devin Rousso  <dcrousso+webkit@gmail.com>
1940
1941         Web Inspector: Visual sidebar selector section displays inherited section for non-editable rules
1942         https://bugs.webkit.org/show_bug.cgi?id=152659
1943
1944         Reviewed by Brian Burg.
1945
1946         * UserInterface/Views/VisualStyleSelectorSection.js:
1947         (WebInspector.VisualStyleSelectorSection.prototype.update):
1948         Only add a new inherited section header if it will contain at least one inherited rule.
1949
1950 2016-01-02  Devin Rousso  <dcrousso+webkit@gmail.com>
1951
1952         Web Inspector: List all resources that are initiated by the selected resource in the Network tab
1953         https://bugs.webkit.org/show_bug.cgi?id=152647
1954
1955         Reviewed by Timothy Hatcher.
1956
1957         Selecting resources in the Network tab will now display a list of all resources
1958         that the selected resource loaded, allowing for easier understanding of the
1959         relationship between all the resources loaded on a page.
1960
1961         * Localizations/en.lproj/localizedStrings.js:
1962         * UserInterface/Base/Main.js:
1963         Added functions to generate link(s) to Resource instead of SourceCodeLocation.
1964
1965         * UserInterface/Models/Resource.js:
1966         (WebInspector.Resource):
1967         (WebInspector.Resource.prototype.get initiatedResources):
1968         (WebInspector.Resource.prototype.addInitiatedResource):
1969         Each time a resource is added, if it has an initiator, it adds itself to the
1970         initiator's list of initiated resources.
1971
1972         * UserInterface/Views/Main.css:
1973         (.resource-list > .resource-link):
1974         (.resource-list > .resource-link::before):
1975         (.resource-list > .resource-link + .resource-link):
1976         (.resource-link):
1977
1978         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
1979         (WebInspector.ResourceDetailsSidebarPanel):
1980         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
1981
1982 2016-01-02  Devin Rousso  <dcrousso+webkit@gmail.com>
1983
1984         Web Inspector: Add list-style properties to Visual Sidebar
1985         https://bugs.webkit.org/show_bug.cgi?id=152631
1986
1987         Reviewed by Timothy Hatcher.
1988
1989         Seeing as lists are very common in web pages across the internet, adding
1990         a section to let users edit the properties unique to lists seems prudent.
1991
1992         * Localizations/en.lproj/localizedStrings.js:
1993         * UserInterface/Images/ListStylePositionInside.svg: Added.
1994         * UserInterface/Images/ListStylePositionOutside.svg: Added.
1995         * UserInterface/Main.html:
1996         Re-added UserInterface/Views/VisualStyleURLInput.js
1997
1998         * UserInterface/Views/VisualStyleDetailsPanel.js:
1999         (WebInspector.VisualStyleDetailsPanel):
2000         (WebInspector.VisualStyleDetailsPanel.prototype._populateListStyleSection):
2001
2002         * UserInterface/Views/VisualStyleKeywordIconList.css:
2003         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon):
2004         Added specified color property to ensure that :active doesn't break the color of the svg.
2005
2006         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:matches(.computed, .selected)):
2007         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected):
2008         Changed the background-color and border-color values to match the rest of Web Inspector.
2009
2010         * UserInterface/Views/VisualStyleKeywordIconList.js:
2011         (WebInspector.VisualStyleKeywordIconList):
2012         (WebInspector.VisualStyleKeywordIconList.dashToCapital): Deleted.
2013         (WebInspector.VisualStyleKeywordIconList.createListItem):
2014         The "initial" keyword will also use UserInterface/Images/VisualStyleNone.svg
2015
2016         * UserInterface/Views/VisualStyleURLInput.js: Added.
2017         Previously removed in r192705.
2018
2019 2016-01-02  Alberto Garcia  <berto@igalia.com>
2020
2021         [GTK] webkit 2.3.5 build failure with python 3.3.4
2022         https://bugs.webkit.org/show_bug.cgi?id=128971
2023
2024         Reviewed by Michael Catanzaro.
2025
2026         Make sure that the stdin encoding is 'UTF-8' if using Python 3,
2027         otherwise the build will break.
2028
2029         * Scripts/cssmin.py:
2030
2031 2016-01-01  Devin Rousso  <dcrousso+webkit@gmail.com>
2032
2033         Web Inspector: shadow visual sidebar section can be confused with the box shadow section
2034         https://bugs.webkit.org/show_bug.cgi?id=148107
2035
2036         Reviewed by Brian Burg.
2037
2038         * Localizations/en.lproj/localizedStrings.js:
2039         * UserInterface/Views/VisualStyleDetailsPanel.js:
2040         (WebInspector.VisualStyleDetailsPanel):
2041         Changed title of "Shadow" sub-section in "Background" to "Box Shadow".
2042
2043 2016-01-01  Devin Rousso  <dcrousso+webkit@gmail.com>
2044
2045         Web Inspector: The Computed Styles Properties section shows warning icons and doesn't update if collapsed
2046         https://bugs.webkit.org/show_bug.cgi?id=152609
2047
2048         Reviewed by Brian Burg.
2049
2050         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2051         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
2052         If the CodeMirror instance is read-only, don't add any warning icons.
2053
2054         * UserInterface/Views/ComputedStyleDetailsPanel.js:
2055         (WebInspector.ComputedStyleDetailsPanel):
2056         (WebInspector.ComputedStyleDetailsPanel.prototype._handleCollapsedStateChanged):
2057         The properties text editor will now refresh whenever the details section
2058         becomes un-collapsed.
2059
2060         * UserInterface/Views/DetailsSection.js:
2061         (WebInspector.DetailsSection.prototype.set collapsed):
2062         Now fires an event with the current collapsed state as data.
2063
2064 2015-12-31  Matt Baker  <mattbaker@apple.com>
2065
2066         Web Inspector: "No Filter Results" message overlaps Debugger sidebar sections
2067         https://bugs.webkit.org/show_bug.cgi?id=150608
2068
2069         Reviewed by Brian Burg.
2070
2071         * UserInterface/Views/DebuggerSidebarPanel.js:
2072         (WebInspector.DebuggerSidebarPanel.showResourcesWithIssuesOnlyFilterFunction):
2073         Style cleanup.
2074         (WebInspector.DebuggerSidebarPanel):
2075         Add breakpoints tree to the details section before adding Global Breakpoint
2076         elements, since adding them will trigger filtering.
2077         (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
2078         Simplified selection management between the various tree outlines.
2079         (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
2080         Style cleanup.
2081         (WebInspector.DebuggerSidebarPanel.prototype.get hasSelectedElement): Deleted.
2082         Defer to the base class implementation.
2083         (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange.deselectCallStackContentTreeElements): Deleted.
2084         (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange.deselectBreakpointContentTreeElements): Deleted.
2085         (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange.deselectPauseReasonContentTreeElements): Deleted.
2086         These are no longer needed, since the list of visible tree elements list can be used
2087         to manage tree element selection is a more general way.
2088
2089         * UserInterface/Views/NavigationSidebarPanel.css:
2090         Empty content placeholders are now inserted into the DOM as a sibling of the
2091         tree that was filtered. As such, they can be a child of a details section, or
2092         the sidebar's content element.
2093         (.sidebar > .panel.navigation > .content .empty-content-placeholder):
2094         Styles for all empty content placeholders.
2095         (.sidebar > .panel.navigation > .content > .empty-content-placeholder):
2096         Styles for empty content placeholders that fill the sidebar's content element.
2097         (.sidebar > .panel.navigation > .content .message):
2098         Styles for all empty content placeholders.
2099         (.sidebar > .panel.navigation > .empty-content-placeholder): Deleted.
2100         (.sidebar > .panel.navigation > .empty-content-placeholder > .message): Deleted.
2101
2102         * UserInterface/Views/NavigationSidebarPanel.js:
2103         (WebInspector.NavigationSidebarPanel):
2104         Track the tree outline which currently has a selection.
2105         Manage a map of content placeholders
2106         (WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline):
2107         (WebInspector.NavigationSidebarPanel.prototype.get hasSelectedElement):
2108         Check all visible content trees for a selected element.
2109         (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
2110         (WebInspector.NavigationSidebarPanel.prototype.treeElementForRepresentedObject):
2111         Check all visible content trees for the represented object.
2112         (WebInspector.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
2113         (WebInspector.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
2114         (WebInspector.NavigationSidebarPanel.prototype.updateEmptyContentPlaceholder):
2115         No sidebars currently have more than one filterable content tree outline, but in
2116         the future we will want to support this. Empty content placeholder visibility
2117         is now done per tree outline.
2118         (WebInspector.NavigationSidebarPanel.prototype.show):
2119         Focus the tree outline that most recently had the selection, or the
2120         first tree outline in the visible tree list, if it exists.
2121         (WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults.checkTreeOutlineForEmptyFilterResults):
2122         Tree is considered filtered if no visible filterable tree elements are found.
2123         (WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults):
2124         Check all visible trees that support filtering.
2125         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
2126         Support for filtering multiple content trees.
2127         (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
2128         Check if the element's tree outline supports filtering, before applying filters.
2129         (WebInspector.NavigationSidebarPanel.prototype._treeSelectionDidChange):
2130         Update the selected tree outline.
2131         (WebInspector.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded):
2132         Create a new empty content placeholder element for the tree.
2133         (WebInspector.NavigationSidebarPanel.prototype.get contentTreeOutlineElement): Deleted.
2134         No longer used.
2135
2136         * UserInterface/Views/TimelineSidebarPanel.js:
2137         (WebInspector.TimelineSidebarPanel.prototype.get hasSelectedElement): Deleted.
2138         Defer to the base class implementation.
2139
2140 2015-12-29  Devin Rousso  <dcrousso+webkit@gmail.com>
2141
2142         Web Inspector: Styling of invalid selector persists when changing the selected node
2143         https://bugs.webkit.org/show_bug.cgi?id=152456
2144
2145         Reviewed by Brian Burg.
2146
2147         If the user changes the selector of a CSS rule to be invalid (e.g. having
2148         a { or ; character), it is expected that the invalid indicator will be removed
2149         once the user changes nodes or reverts the selector to its previous value.
2150
2151         * Localizations/en.lproj/localizedStrings.js:
2152         * UserInterface/Views/CSSStyleDeclarationSection.css:
2153         (.style-declaration-section > .header > .icon.toggle-able:hover):
2154         (.style-declaration-section > .header > .icon.toggle-able:active):
2155         (.style-declaration-section:not(.invalid-selector) > .header > .icon.toggle-able:hover): Deleted.
2156         Added better :hover and :active styles.
2157
2158         * UserInterface/Views/CSSStyleDeclarationSection.js:
2159         (WebInspector.CSSStyleDeclarationSection):
2160         (WebInspector.CSSStyleDeclarationSection.prototype.refresh):
2161         (WebInspector.CSSStyleDeclarationSection.prototype._handleIconElementClicked):
2162         If the selector is invalid, simply refresh the section to regenerate the
2163         original selector with correct content, specificity, and highlighting.
2164
2165         (WebInspector.CSSStyleDeclarationSection.prototype.get _hasInvalidSelector): Deleted.
2166         Moved the state of the invalid selector to a member
2167         variable instead of a DOM class.
2168
2169         (WebInspector.CSSStyleDeclarationSection.prototype._updateSelectorIcon):
2170         Renamed from _markSelector for clarity.
2171
2172         * UserInterface/Views/VisualStyleSelectorTreeItem.css:
2173         (.item.visual-style-selector-item.selector-invalid > .icon:hover):
2174         (.item.visual-style-selector-item.selector-invalid > .icon:active):
2175         (.item.visual-style-selector-item.selector-invalid > .icon):
2176         Added :hover and :active styles.
2177
2178         * UserInterface/Views/VisualStyleSelectorTreeItem.js:
2179         (WebInspector.VisualStyleSelectorTreeItem):
2180         (WebInspector.VisualStyleSelectorTreeItem.prototype.onattach):
2181         (WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector):
2182         (WebInspector.VisualStyleSelectorTreeItem.prototype._updateSelectorIcon):
2183         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleIconElementClicked):
2184         (WebInspector.VisualStyleSelectorTreeItem.prototype._selectorChanged): Deleted.
2185         Changed the names of a few functions to provide better
2186         consistency across the classes in the Style sidebar.
2187
2188 2015-12-27  Brian Burg  <bburg@apple.com>
2189
2190         Web Inspector: improve pre-filled bugzilla link on Uncaught Exception reporter sheet
2191         https://bugs.webkit.org/show_bug.cgi?id=152402
2192
2193         Reviewed by Joseph Pecoraro.
2194
2195         Include the UA string, inspected page URL, and a template that includes
2196         steps to reproduce and notes. Other common headings (regression, expected,
2197         results, summary) are omitted because they are unlikely to be known when
2198         an uncaught exception occurs, or are obvious ("shouldn't throw exception").
2199
2200         * UserInterface/Debug/UncaughtExceptionReporter.js:
2201
2202 2015-12-21  Nikita Vasilyev  <nvasilyev@apple.com>
2203
2204         WebInspector: Can't open a new tab: Uncaught Exception: TypeError: this.isNewTabWithTypeAllowed is not a function
2205         https://bugs.webkit.org/show_bug.cgi?id=152471
2206
2207         Reviewed by Timothy Hatcher.
2208
2209         * UserInterface/Base/Main.js:
2210         (WebInspector._updateNewTabButtonState):
2211         Don't use arrow functions because of https://webkit.org/b/152497 "Arrow functions: 'this' isn't lexically bound"
2212
2213 2015-12-21  Nikita Vasilyev  <nvasilyev@apple.com>
2214
2215         Web Inspector: Remove unused WebInspector.Object.removeAllListeners
2216         https://bugs.webkit.org/show_bug.cgi?id=152474
2217
2218         Reviewed by Timothy Hatcher.
2219
2220         * UserInterface/Base/Object.js:
2221         (WebInspector.Object.removeAllListeners): Deleted.
2222         (WebInspector.Object.prototype.removeAllListeners): Deleted.
2223
2224 2015-12-20  Dan Bernstein  <mitz@apple.com>
2225
2226         Remove unused setToolbarHeight
2227         https://bugs.webkit.org/show_bug.cgi?id=152466
2228
2229         Reviewed by Darin Adler.
2230
2231         * UserInterface/Base/Main.js:
2232         (WebInspector.contentLoaded):
2233         * UserInterface/Protocol/InspectorFrontendHostStub.js:
2234         (window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.setToolbarHeight): Deleted.
2235
2236 2015-12-19  Dan Bernstein  <mitz@apple.com>
2237
2238         [Mac] WebKit contains dead source code for OS X Mavericks and earlier
2239         https://bugs.webkit.org/show_bug.cgi?id=152462
2240
2241         Reviewed by Alexey Proskuryakov.
2242
2243         - Removed build setting definitions for OS X 10.9 and earlier, and simplified defintions
2244           that became uniform across all OS X versions as a result:
2245
2246         * Configurations/Base.xcconfig:
2247         * Configurations/DebugRelease.xcconfig:
2248         * Configurations/Version.xcconfig:
2249
2250         * Scripts/copy-user-interface-resources.pl: Removed code to delete Images/Legacy.
2251
2252         * UserInterface/Images/Legacy: Removed this empty directory.
2253
2254 2015-12-18  Matt Baker  <mattbaker@apple.com>
2255
2256         Web Inspector: Make it possible to debug injected scripts when the Debug UI is enabled
2257         https://bugs.webkit.org/show_bug.cgi?id=152445
2258
2259         Reviewed by Joseph Pecoraro.
2260
2261         * UserInterface/Base/Main.js:
2262         Added function to check for debug UI.
2263
2264         * UserInterface/Base/Object.js:
2265         Added notification for debug UI enabled state change.
2266
2267         * UserInterface/Base/Utilities.js:
2268         (isWebInspectorInternalScript):
2269         (isWebInspectorDebugScript):
2270         Added functions to check for internal and debug inspector scripts.
2271
2272         * UserInterface/Controllers/DebuggerManager.js:
2273         (WebInspector.DebuggerManager):
2274         Maintain a list of inspector debug scripts, so that the manager can
2275         add and remove them when the debug UI is enabled/disabled.
2276         (WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
2277         (WebInspector.DebuggerManager.prototype.reset):
2278         Clear the list of inspector debug scripts.
2279         (WebInspector.DebuggerManager.prototype.debuggerDidPause):
2280         (WebInspector.DebuggerManager.prototype.scriptDidParse):
2281         Skip internal inspector scripts. Debug inspector scripts are tracked,
2282         and an added event is dispatched if the debug UI is enabled.
2283         (WebInspector.DebuggerManager.prototype._debugUIEnabledDidChange):
2284         Dispatch added/removed events for inspector debug scripts.
2285
2286         * UserInterface/Debug/Bootstrap.js:
2287         (WebInspector.runBootstrapOperations):
2288         Expose changes to the debug UI setting to the reset of the UI, by dispatching
2289         a WebInspector.Notification.DebugUIEnabledDidChange event.
2290
2291         * UserInterface/Protocol/RemoteObject.js:
2292         (WebInspector.RemoteObject.prototype.findFunctionSourceCodeLocation):
2293         Only resolve inspector debug source locations when the debug UI is enabled.
2294
2295         * UserInterface/Test/Test.js:
2296         Reimplemented debug UI check for tests. Always returns false.
2297
2298         * UserInterface/Views/DebuggerSidebarPanel.js:
2299         (WebInspector.DebuggerSidebarPanel.prototype._addScript):
2300         Removed check for inspector debug scripts. DebuggerManager filters scripts as needed.
2301         (WebInspector.DebuggerSidebarPanel.prototype._scriptRemoved):
2302         Handle DebuggerManager ScriptRemoved events. Only applies to debug scripts.
2303
2304         * UserInterface/Views/ResourceSidebarPanel.js:
2305         (WebInspector.ResourceSidebarPanel):
2306         (WebInspector.ResourceSidebarPanel.prototype._scriptWasRemoved):
2307         Handle DebuggerManager ScriptRemoved events. Only applies to debug scripts.
2308         (WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
2309         Removed check for inspector debug scripts. DebuggerManager filters scripts as needed.
2310
2311 2015-12-17  Joseph Pecoraro  <pecoraro@apple.com>
2312
2313         Web Inspector: Remove "local" scope type from the protocol
2314         https://bugs.webkit.org/show_bug.cgi?id=152409
2315
2316         Reviewed by Timothy Hatcher.
2317
2318         * UserInterface/Controllers/DebuggerManager.js:
2319         (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
2320
2321 2015-12-17  Joseph Pecoraro  <pecoraro@apple.com>
2322
2323         Web Inspector: CSS warning's fake CallFrame is not creating a valid payload
2324         https://bugs.webkit.org/show_bug.cgi?id=152413
2325
2326         Reviewed by Timothy Hatcher.
2327
2328         * UserInterface/Views/ConsoleMessageView.js:
2329         (WebInspector.ConsoleMessageView.prototype._appendLocationLink):
2330         This attempts to create a CallFrame from a Console.CallFrame payload,
2331         but this was missing the required functionName string parameter.
2332
2333 2015-12-17  Joseph Pecoraro  <pecoraro@apple.com>
2334
2335         Provide a way to distinguish a nested lexical block from a function's lexical block
2336         https://bugs.webkit.org/show_bug.cgi?id=152361
2337
2338         Reviewed by Saam Barati.
2339
2340         * Localizations/en.lproj/localizedStrings.js:
2341         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
2342         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
2343         New "Block Variables" string.
2344
2345         * UserInterface/Models/ScopeChainNode.js:
2346         New "Block" scope type, and update existing types.
2347
2348         * UserInterface/Controllers/DebuggerManager.js:
2349         (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
2350         Parse the protocol type to frontend types. Use the protocol generated enum.
2351
2352 2015-12-17  Joseph Pecoraro  <pecoraro@apple.com>
2353
2354         Web Inspector: Improve names in Debugger Call Stack section when paused
2355         https://bugs.webkit.org/show_bug.cgi?id=152398
2356
2357         Reviewed by Brian Burg.
2358
2359         * UserInterface/Controllers/DebuggerManager.js:
2360         (WebInspector.DebuggerManager.prototype.debuggerDidPause):
2361         Use a new fromPayload helper to construct the CallFrame and share code.
2362
2363         * UserInterface/Models/CallFrame.js:
2364         (WebInspector.CallFrame.functionNameFromPayload):
2365         (WebInspector.CallFrame.programCodeFromPayload):
2366         (WebInspector.CallFrame.fromDebuggerPayload):
2367         (WebInspector.CallFrame.fromPayload):
2368         Add a new way to construct a call frame. There are two kinds of
2369         CallFrame payloads in the protocol:
2370         - Debugger.CallFrame, this new path
2371         - Console.CallFrame, the pre-existing path
2372
2373 2015-12-17  Brian Burg  <bburg@apple.com>
2374
2375         Web Inspector: control whether to collect and dump protocol messages using a WebInspector.Setting
2376         https://bugs.webkit.org/show_bug.cgi?id=151635
2377
2378         Reviewed by Joseph Pecoraro.
2379
2380         Follow-up fix to stop double-logging everything.
2381
2382         * UserInterface/Protocol/LoggingProtocolTracer.js:
2383         (WebInspector.LoggingProtocolTracer.prototype._processEntry):
2384
2385 2015-12-17  Joseph Pecoraro  <pecoraro@apple.com>
2386
2387         Web Inspector: Improve console.trace, make it more like console.assert and inline the message
2388         https://bugs.webkit.org/show_bug.cgi?id=152352
2389
2390         Reviewed by Timothy Hatcher.
2391
2392         * Localizations/en.lproj/localizedStrings.js:
2393         New "Trace" related strings.
2394
2395         * UserInterface/Views/ConsoleMessageView.js:
2396         (WebInspector.ConsoleMessageView.prototype.expand):
2397         Since we auto-expand Trace messages for their Call Stack, don't also
2398         auto-expand a single inner object, which may be big and push the
2399         actual stack trace off the screen.
2400         
2401         (WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
2402         Behave like Assert messages and absorb a message string, and include
2403         extra arguments gracefully.
2404
2405         (WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
2406         For expandable messages with simple extra arguments (console.trace with
2407         primitives and backtrace, or console.assert with primitives and backtrace)
2408         we were hiding the inline lossless previews and not showing them as a
2409         bulleted list below. We can just keep the lossless previews inline in the
2410         title, since they were only put there because they are small and lossless.
2411
2412         (WebInspector.ConsoleMessageView.prototype.toClipboardString):
2413         No need to hard code "console.trace()" in the clipboard.
2414
2415         * UserInterface/Views/ConsoleMessageView.css:
2416         (.console-message.expandable.expanded :matches(.console-message-preview, .console-message-preview-divider):not(.inline-lossless)):
2417         (.console-message.expandable.expanded :matches(.console-message-preview, .console-message-preview-divider)): Deleted.
2418         Don't hide the inline lossless preview in the console message title when it is inline-lossless.
2419
2420         * UserInterface/Views/ObjectTreeView.js:
2421         (WebInspector.ObjectTreeView.prototype.expand):
2422         Do not allow expanding a loss-less preview.
2423
2424 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
2425
2426         Web Inspector: Add JSContext Script Profiling
2427         https://bugs.webkit.org/show_bug.cgi?id=151899
2428
2429         Reviewed by Brian Burg.
2430
2431         Enable the Timeline tab for JSContext inspection. Currently only
2432         JSContext inspection will use the ScriptProfiler domain, it will
2433         be enabled for Page inspection in a follow-up.
2434
2435         First pass at the UI creates basic ScriptTimelineRecords for
2436         ScriptProfiler events. At the end of recording, when profiles
2437         are downloaded, it attaches profiles to the timeline records
2438         and refreshes the Scripts timeline.
2439
2440         * UserInterface/Base/Main.js:
2441         (WebInspector.loaded):
2442         * UserInterface/Controllers/TimelineManager.js:
2443         (WebInspector.TimelineManager):
2444         (WebInspector.TimelineManager.defaultInstruments):
2445         (WebInspector.TimelineManager.prototype.computeElapsedTime):
2446         (WebInspector.TimelineManager.prototype.scriptProfilerIsTracking):
2447         (WebInspector.TimelineManager.prototype._loadNewRecording):
2448         (WebInspector.TimelineManager.prototype._mainResourceDidChange):
2449         (WebInspector.TimelineManager.prototype._resourceWasAdded):
2450         (WebInspector.TimelineManager.prototype._garbageCollected):
2451         (WebInspector.TimelineManager.prototype._addRecord): Deleted.
2452         * UserInterface/Main.html:
2453         * UserInterface/Models/Instrument.js:
2454         (WebInspector.Instrument.startLegacyTimelineAgent):
2455         * UserInterface/Models/ScriptInstrument.js:
2456         (WebInspector.ScriptInstrument.prototype.startInstrumentation):
2457         (WebInspector.ScriptInstrument.prototype.stopInstrumentation):
2458         (WebInspector.ScriptInstrument):
2459         * UserInterface/Models/ScriptTimelineRecord.js:
2460         (WebInspector.ScriptTimelineRecord.prototype.get profilePayload):
2461         (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
2462         (WebInspector.ScriptTimelineRecord):
2463         (WebInspector.ScriptTimelineRecord.EventType.displayName):
2464         * UserInterface/Models/Timeline.js:
2465         (WebInspector.Timeline.prototype.refresh):
2466         * UserInterface/Models/TimelineRecording.js:
2467         (WebInspector.TimelineRecording.sourceCodeTimelinesSupported):
2468         (WebInspector.TimelineRecording.prototype.timelineForRecordType):
2469         (WebInspector.TimelineRecording.prototype.addRecord):
2470         * UserInterface/Protocol/ScriptProfilerObserver.js: Copied from Source/WebInspectorUI/UserInterface/Models/ScriptInstrument.js.
2471         (WebInspector.ScriptProfilerObserver.prototype.trackingStart):
2472         (WebInspector.ScriptProfilerObserver.prototype.trackingUpdate):
2473         (WebInspector.ScriptProfilerObserver.prototype.trackingComplete):
2474         (WebInspector.ScriptProfilerObserver):
2475         * UserInterface/Views/ScriptTimelineView.js:
2476         (WebInspector.ScriptTimelineView):
2477         (WebInspector.ScriptTimelineView.prototype._processPendingRecords):
2478         (WebInspector.ScriptTimelineView.prototype._scriptTimelineRecordRefreshed):
2479         * UserInterface/Views/TimelineRecordTreeElement.js:
2480         (WebInspector.TimelineRecordTreeElement):
2481         * UserInterface/Views/TimelineTabContentView.js:
2482         (WebInspector.TimelineTabContentView.isTabAllowed):
2483
2484 2015-12-17  Matt Baker  <mattbaker@apple.com>
2485
2486         Web Inspector: REGRESSION (r193913): Popover covers completion suggestions
2487         https://bugs.webkit.org/show_bug.cgi?id=152369
2488
2489         Reviewed by Timothy Hatcher.
2490
2491         * UserInterface/Views/Variables.css:
2492         (:root):
2493         Swap popover and tooltip z-index ordering.
2494
2495 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
2496
2497         REGRESSION: Web Inspector: console.dir(...) should force allowing object expansion
2498         https://bugs.webkit.org/show_bug.cgi?id=152328
2499
2500         Reviewed by Timothy Hatcher.
2501
2502         * UserInterface/Views/ConsoleMessageView.js:
2503         (WebInspector.ConsoleMessageView.prototype._formatParameter):
2504         Propogate the force parameter down.
2505
2506 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
2507
2508         Web Inspector: Improve copy of console messages with multiple arguments - console.log(obj1, obj2)
2509         https://bugs.webkit.org/show_bug.cgi?id=152330
2510
2511         Reviewed by Timothy Hatcher.
2512
2513         * UserInterface/Views/ConsoleMessageView.js:
2514         (WebInspector.ConsoleMessageView.prototype.toClipboardString):
2515         Copy the inner text of the extra arguments list as well, for
2516         console messages with multiple objects. Rearrange the sections
2517         that, if there is a stack trace it comes at the end after
2518         multiple arguments. If there is no stack trace, include the
2519         location info next to the top line, before multiple arguments.
2520
2521 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
2522
2523         Web Inspector: Improve copy of console message containing Array and Map output
2524         https://bugs.webkit.org/show_bug.cgi?id=152329
2525
2526         Reviewed by Timothy Hatcher.
2527
2528         Introduce a real space in the content instead of style specific
2529         margins so the existing copy/paste mechanism (innerText)
2530         will have spaces between index/key and value.
2531
2532         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
2533         (.object-tree-array-index .index-name): Deleted.
2534         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
2535         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
2536         (WebInspector.ObjectTreeArrayIndexTreeElement):
2537         * UserInterface/Views/ObjectTreeMapEntryTreeElement.css:
2538         (.object-tree-array-index.object-tree-map-entry > .titles > .title > .index-name): Deleted.
2539         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
2540         (WebInspector.ObjectTreeMapEntryTreeElement.prototype.titleFragment):
2541         (WebInspector.ObjectTreeMapEntryTreeElement):
2542         * UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
2543         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
2544         (WebInspector.ObjectTreeSetIndexTreeElement):
2545
2546 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
2547
2548         Web Inspector: Typing object literal in the console causes a parse error
2549         https://bugs.webkit.org/show_bug.cgi?id=141737
2550
2551         Reviewed by Timothy Hatcher.
2552
2553         Provide a convenience in console evaluations for JSON object like input.
2554         If the console input starts with '{' and ends with '}' wrap the input
2555         in parenthesis to force evaluation as an expression.
2556
2557         For example, input "{a:1}" would be convenience wrapped to "({a:1})"
2558         and produce the expected object. This helps avoid the unusual treatment
2559         of "{a:1}" as program containing a labeled statement, which is often
2560         not what the user expects. And in more realistic cases, like "{a:1, b:2}",
2561         produce a SyntaxError.
2562
2563         * UserInterface/Controllers/RuntimeManager.js:
2564         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
2565         Detect and convenience wrap the given expression.
2566
2567 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
2568
2569         Uncaught Exception View has undefined exception URL
2570         https://bugs.webkit.org/show_bug.cgi?id=152327
2571
2572         Reviewed by Darin Adler.
2573
2574         * UserInterface/Debug/UncaughtExceptionReporter.js:
2575         (handleUncaughtException):
2576         Use ErrorEvent's filename property, not url which is undefined.
2577
2578 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
2579
2580         Uncaught Exception: ReferenceError: Can't find variable: resolvedValue
2581         https://bugs.webkit.org/show_bug.cgi?id=152326
2582
2583         Reviewed by Darin Adler.
2584
2585         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
2586         (WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler):
2587         This identifier is used later on, so assign it here.
2588
2589 2015-12-15  Joseph Pecoraro  <pecoraro@apple.com>
2590
2591         Web Inspector: Localize "global code" and "eval code" strings
2592         https://bugs.webkit.org/show_bug.cgi?id=152313
2593
2594         Reviewed by Timothy Hatcher.
2595
2596         * Localizations/en.lproj/localizedStrings.js:
2597         * UserInterface/Models/CallFrame.js:
2598         (WebInspector.CallFrame.fromPayload):
2599         Localize the strings given to use from the backend.
2600
2601 2015-12-15  Matt Baker  <mattbaker@apple.com>
2602
2603         Web Inspector: Convert Sidebar classes to use View
2604         https://bugs.webkit.org/show_bug.cgi?id=152274
2605
2606         Reviewed by Brian Burg.
2607
2608         Updated Sidebar and SidebarPanel to inherit from View. Mostly mechanical changes.
2609         Once the DetailsSection class family inherits from View (https://webkit.org/b/152269),
2610         directly modifying a sidebar's 'contentView' element will rarely be necessary.
2611
2612         * UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
2613         (WebInspector.ApplicationCacheDetailsSidebarPanel):
2614
2615         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
2616         (WebInspector.CSSStyleDetailsSidebarPanel):
2617         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh):
2618         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
2619         Add/remove panels as subviews of the sidebar.
2620         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._filterDidChange):
2621
2622         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2623         (WebInspector.DOMNodeDetailsSidebarPanel):
2624
2625         * UserInterface/Views/DebuggerSidebarPanel.js:
2626         (WebInspector.DebuggerSidebarPanel):
2627         (WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
2628
2629         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
2630         (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildLayerInfoSection):
2631         (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
2632
2633         * UserInterface/Views/NavigationSidebarPanel.js:
2634         (WebInspector.NavigationSidebarPanel):
2635         (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
2636         (WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
2637
2638         * UserInterface/Views/ProbeDetailsSidebarPanel.js:
2639         (WebInspector.ProbeDetailsSidebarPanel.prototype.set inspectedProbeSets):
2640
2641         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
2642         (WebInspector.ResourceDetailsSidebarPanel):
2643         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
2644         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
2645         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestDataSection):
2646
2647         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
2648         (WebInspector.ScopeChainDetailsSidebarPanel):
2649         (WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh.):
2650         (WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):
2651
2652         * UserInterface/Views/SidebarPanel.js:
2653         Inherit from View.
2654         (WebInspector.SidebarPanel):
2655         Replace the content element (the portion of the view excluding navigation
2656         bars, filter bars, etc.) with a View object. A sidebar's content can be a mixture
2657         of unwrapped DOM elements and View objects. For now, the content view's element
2658         will be mutated directly, but once the DetailsSection class family inherits from
2659         the View class the handling of details sections will be simplified.
2660         (WebInspector.SidebarPanel.prototype.get contentView):
2661         (WebInspector.SidebarPanel.prototype.shown):
2662         (WebInspector.SidebarPanel.prototype.hidden):
2663         (WebInspector.SidebarPanel.prototype.get contentElement): Deleted.
2664         Replaced by WebInspector.SidebarPanel.prototype.get contentView.
2665
2666         * UserInterface/Views/StyleDetailsPanel.js:
2667         Inherit from View.
2668         (WebInspector.StyleDetailsPanel):
2669         (WebInspector.StyleDetailsPanel.prototype.get element): Deleted.
2670         Defer to View.element getter.
2671
2672         * UserInterface/Views/TimelineSidebarPanel.js:
2673         (WebInspector.TimelineSidebarPanel.prototype._updateTimelineOverviewHeight):
2674
2675         * UserInterface/Views/VisualStyleDetailsPanel.js:
2676         (WebInspector.VisualStyleDetailsPanel):
2677         (WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
2678
2679 2015-12-14  Joseph Pecoraro  <pecoraro@apple.com>
2680
2681         Web Inspector: Stack traces in console incorrectly show "(anonymous function)" for global code
2682         https://bugs.webkit.org/show_bug.cgi?id=152280
2683
2684         Reviewed by Brian Burg.
2685
2686         * UserInterface/Images/Program.svg: Added.
2687         * UserInterface/Images/gtk/Program.svg: Added.
2688         Copied from TimelineRecordScriptEvaluated.svg.
2689
2690         * UserInterface/Models/CallFrame.js:
2691         (WebInspector.CallFrame):
2692         (WebInspector.CallFrame.prototype.get programCode):
2693         Add a new property to check if this call frame is in program code.
2694
2695         (WebInspector.CallFrame.fromPayload):
2696         Detect different sources of program code (global, eval, module).
2697
2698         * UserInterface/Views/CallFrameIcons.css:
2699         (.program-icon .icon):
2700         * UserInterface/Views/CallFrameView.js:
2701         (WebInspector.CallFrameView.iconClassNameForCallFrame):
2702         Give program code the [S] global script icon like in profiles.
2703
2704 2015-12-14  Joseph Pecoraro  <pecoraro@apple.com>
2705
2706         Web Inspector: Copy message from console with a stack trace does not include source code locations
2707         https://bugs.webkit.org/show_bug.cgi?id=152270
2708
2709         Reviewed by Timothy Hatcher.
2710
2711         * UserInterface/Views/ConsoleMessageView.js:
2712         (WebInspector.ConsoleMessageView.prototype.toClipboardString):
2713         When the the StackTrace was upgraded to a real collection of CallFrame
2714         object's the CallFrame's got real SourceCodeLocation properties.
2715
2716 2015-12-13  Matt Baker  <mattbaker@apple.com>
2717
2718         Web Inspector: Make TimelineOverview's graph container a subview
2719         https://bugs.webkit.org/show_bug.cgi?id=152235
2720
2721         Reviewed by Brian Burg.
2722
2723         * UserInterface/Views/TimelineOverview.js:
2724         (WebInspector.TimelineOverview):
2725         Create graph container subview.
2726         (WebInspector.TimelineOverview.prototype._instrumentAdded):
2727         Add overview to the graph container view.
2728         (WebInspector.TimelineOverview.prototype._instrumentRemoved):
2729         Remove overview from the graph container view.
2730         (WebInspector.TimelineOverview.prototype.layout):
2731         No longer necessary to manually lay out overview graphs.
2732         (WebInspector.TimelineOverview.prototype._needsLayout): Deleted.
2733         Removed dead code.
2734
2735 2015-12-12  Matt Baker  <mattbaker@apple.com>
2736
2737         Web Inspector: CodeMirrorTokenTrackingController handles symbols in class definitions incorrectly
2738         https://bugs.webkit.org/show_bug.cgi?id=152218
2739
2740         Reviewed by Timothy Hatcher.
2741
2742         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
2743         (WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
2744         Stop checking for object literal shorthand property if an open parenthesis is found.
2745         This check became necessary with the introduction of ES6 class syntax.
2746
2747         * UserInterface/Views/CodeMirrorAdditions.js:
2748         Use localState when available, to prevent passing a state that doesn't define a tokenize property.
2749
2750 2015-12-12  Joseph Pecoraro  <pecoraro@apple.com>
2751
2752         REGRESSION (r191613): Web Inspector: Can't type spaces when editing DOM nodes
2753         https://bugs.webkit.org/show_bug.cgi?id=152173
2754
2755         Reviewed by Timothy Hatcher.
2756
2757         * UserInterface/Views/TimelineSidebarPanel.js:
2758         (WebInspector.TimelineSidebarPanel):
2759         Disable the keyboard shortcuts when they are created. They will be
2760         enabled when the panel is shown / hidden. It doesn't really make sense
2761         that these are on the sidebar panel instead of the tab, but things
2762         will be changing in Timelines soon anyways so just fix this now.
2763
2764 2015-12-12  Nikita Vasilyev  <nvasilyev@apple.com>
2765
2766         Web Inspector: "Selected Element" should use sans-serif font, not monospace
2767         https://bugs.webkit.org/show_bug.cgi?id=152212
2768
2769         Reviewed by Timothy Hatcher.
2770
2771         * UserInterface/Views/ConsoleMessageView.css:
2772         (.console-user-command.special-user-log > .console-message-text):
2773
2774 2015-12-11  Nikita Vasilyev  <nvasilyev@apple.com>
2775
2776         Web Inspector: When logging strings, detect stack traces and show them as StackTraceView
2777         https://bugs.webkit.org/show_bug.cgi?id=149790
2778
2779         Reviewed by Timothy Hatcher.
2780
2781         * UserInterface/Models/StackTrace.js:
2782         (WebInspector.StackTrace.isLikelyStackTrace): Added.
2783
2784         * UserInterface/Views/ConsoleMessageView.css:
2785         (.console-message-extra-parameter .stack-trace):
2786         Display stack trace view on the same line as a list bullet point from
2787         console message extra parameter.
2788
2789         * UserInterface/Views/ConsoleMessageView.js:
2790         (WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
2791         Don't format with string substitutions for stack traces. E.g. there is
2792         no need to replace %s with the next argument.
2793
2794         (WebInspector.ConsoleMessageView.prototype._isStackTrace): Added.
2795         (WebInspector.ConsoleMessageView.prototype._formatParameterAsString):
2796         Detect stack traces and format them appropriately.
2797
2798 2015-12-10  Nikita Vasilyev  <nvasilyev@apple.com>
2799
2800         Web Inspector: debugger dashboard's switching arrows are positioned too close to the dashboard border
2801         https://bugs.webkit.org/show_bug.cgi?id=151867
2802
2803         Reviewed by Timothy Hatcher.
2804
2805         * UserInterface/Views/DashboardContainerView.css:
2806         (.dashboard-container .advance-arrow):
2807
2808 2015-12-10  Matt Baker  <mattbaker@apple.com>
2809
2810         Web Inspector: debugger popover should have source location link when showing function source
2811         https://bugs.webkit.org/show_bug.cgi?id=151866
2812
2813         Reviewed by Brian Burg.
2814
2815         Added source code location link to function popover header.
2816
2817         * UserInterface/Views/SourceCodeTextEditor.js:
2818         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
2819         Create source code location link from response payload.
2820         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction):
2821
2822 2015-12-10  Nikita Vasilyev  <nvasilyev@apple.com>
2823
2824         Web Inspector: [Meta] Unify z-index values in Inspector's CSS
2825         https://bugs.webkit.org/show_bug.cgi?id=151978
2826
2827         Introduce CSS variables for z-index due to recurring issues with incorrectly overlapping elements.
2828
2829         From now on, all z-index values >= 64 must be defined as variables.
2830         Values below 64 must not.
2831
2832         Reviewed by Timothy Hatcher.
2833
2834         * UserInterface/Views/Variables.css:
2835         (:root):
2836         Introduce z-index variables.
2837
2838         * UserInterface/Debug/UncaughtExceptionReporter.css:
2839         (.sheet-container):
2840         * UserInterface/Views/BoxModelDetailsSectionRow.css:
2841         (.details-section .row.box-model .editing):
2842         * UserInterface/Views/CompletionSuggestionsView.css:
2843         (.completion-suggestions):
2844         * UserInterface/Views/DashboardContainerView.css:
2845         (.dashboard-container .advance-arrow):
2846         * UserInterface/Views/DataGrid.css:
2847         (.data-grid .resizer):
2848         * UserInterface/Views/DetailsSection.css:
2849         (.details-section > .header):
2850         (.details-section .details-section > .header):
2851         * UserInterface/Views/FindBanner.css:
2852         (.find-banner):
2853         (.find-banner > button.segmented:active):
2854         * UserInterface/Views/Main.css:
2855         (#docked-resizer):
2856         (.message-text-view):
2857         (.bouncy-highlight):
2858         * UserInterface/Views/Popover.css:
2859         (.popover):
2860         * UserInterface/Views/Resizer.css:
2861         (.resizer):
2862         (.glass-pane-for-drag):
2863         * UserInterface/Views/TimelineOverview.css:
2864         (.timeline-overview > .scroll-container):
2865         * UserInterface/Views/VisualStyleSelectorSection.css:
2866         (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider):
2867
2868 2015-12-09  Matt Baker  <mattbaker@apple.com>
2869
2870         Web Inspector: when a marked-dirty subview is attached to a parent View, dirtyDescendantsCount gets out of sync
2871         https://bugs.webkit.org/show_bug.cgi?id=151876
2872
2873         Reviewed by Brian Burg.
2874
2875         * UserInterface/Base/Main.js:
2876         Use root view singleton instead of creating it explicitly.
2877
2878         * UserInterface/Views/View.js:
2879         (WebInspector.View):
2880         (WebInspector.View.rootView):
2881         Singleton root view access. Lazily create and return a view backed
2882         by the document's body element.
2883         (WebInspector.View.prototype.isDescendantOf):
2884         (WebInspector.View.prototype.insertSubviewBefore):
2885         (WebInspector.View.prototype.removeSubview):
2886         (WebInspector.View.prototype.didMoveToWindow):
2887         Notify the view when it becomes, or is no longer, descended from the root view.
2888         (WebInspector.View.prototype.didMoveToParent):
2889         Notify the view when it's added to, or removed from, a parent view.
2890         (WebInspector.View._scheduleLayoutForView):
2891         (WebInspector.View._cancelScheduledLayoutForView):
2892         (WebInspector.View.prototype.makeRootView): Deleted.
2893         No longer needed.
2894         (WebInspector.View.prototype.didAttach): Deleted.
2895         (WebInspector.View.prototype.didDetach): Deleted.
2896         Replaced by didMoveToParent.
2897
2898 2015-12-09  Brian Burg  <bburg@apple.com>
2899
2900         Web Inspector: control whether to collect and dump protocol messages using a WebInspector.Setting
2901         https://bugs.webkit.org/show_bug.cgi?id=151635
2902
2903         Reviewed by Timothy Hatcher.
2904
2905         When closing and reopening the inspector, the setting for whether
2906         to dump protocol messages should be persisted. Otherwise, enabling
2907         dumping from the debug-only UI will miss the initial flood of
2908         messages that are processed when the Inspector loads initial data.
2909
2910         To support a persistent setting, and build some infrastructure for
2911         more advanced uses of collected protocol messages, this patch adds
2912         a new object to trace protocol events. It gets callbacks for each
2913         and implements the console-dumping functionality previously baked in
2914         to InspectorBackend.
2915
2916         In follow-up patches, other protocol tracers will be added to save
2917         protocol data to disk, marshall it to a higher inspection level,
2918         or provide more fine-grained control over what is logged.
2919
2920         This change moves Setting.js into the Base/ directory,
2921         since it is used by Views, Models, and now Protocol classes.
2922
2923         * UserInterface/Base/Setting.js: Renamed from Source/WebInspectorUI/UserInterface/Models/Setting.js.
2924         (WebInspector.Setting):
2925         (WebInspector.Setting.prototype.get name):
2926         (WebInspector.Setting.prototype.get value):
2927         (WebInspector.Setting.prototype.set value):
2928         * UserInterface/Main.html:
2929         * UserInterface/Protocol/InspectorBackend.js:
2930         (InspectorBackendClass):
2931         (InspectorBackendClass.prototype.set dumpInspectorProtocolMessages):
2932         (InspectorBackendClass.prototype.get dumpInspectorProtocolMessages):
2933
2934             We still want to support the legacy way to enable dumping:
2935             `InspectorBackend.dumpInspectorProtocolMessages = true`. This
2936             is because some tests always use it, and it's easier to set this
2937             flag in a custom Bootstrap.js file than to configure the Setting.
2938
2939         (InspectorBackendClass.prototype.set dumpInspectorTimeStats):
2940         (InspectorBackendClass.prototype.get dumpInspectorTimeStats):
2941
2942             We still want to support the legacy way to enable dumping:
2943             `InspectorBackend.dumpInspectorTimeStats = true`. This is
2944             because MessageDispatcher checks this flag for its logging.
2945
2946         (InspectorBackendClass.prototype.set activeTracer):
2947         (InspectorBackendClass.prototype.get activeTracer):
2948
2949             Set the active tracer, finalizing and removing any active tracer
2950             if one exists. If removing a custom tracer (setting to null), then
2951             re-sync activeTracer with the automatic tracing Setting.
2952
2953         (InspectorBackendClass.prototype.dispatch):
2954         (InspectorBackendClass.prototype._startOrStopAutomaticTracing):
2955
2956             Sync the Setting with activeTracer. If an custom tracer is active,
2957             don't replace it with the automatic logging tracer.
2958
2959         (InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
2960         (InspectorBackendClass.prototype._sendCommandToBackendExpectingPromise):
2961         (InspectorBackendClass.prototype._sendMessageToBackend):
2962         (InspectorBackendClass.prototype._dispatchResponse):
2963         (InspectorBackendClass.prototype._dispatchEvent):
2964         (InspectorBackendClass.prototype._flushPendingScripts):
2965         * UserInterface/Protocol/LoggingProtocolTracer.js: Added.
2966         (WebInspector.LoggingProtocolTracer):
2967         (WebInspector.LoggingProtocolTracer.prototype.set dumpMessagesToConsole):
2968         (WebInspector.LoggingProtocolTracer.prototype.get dumpMessagesToConsole):
2969         (WebInspector.LoggingProtocolTracer.prototype.set dumpTimingDataToConsole):
2970         (WebInspector.LoggingProtocolTracer.prototype.get dumpTimingDataToConsole):
2971         (WebInspector.LoggingProtocolTracer.prototype.logFrontendException):
2972         (WebInspector.LoggingProtocolTracer.prototype.logProtocolError):
2973         (WebInspector.LoggingProtocolTracer.prototype.logFrontendRequest):
2974         (WebInspector.LoggingProtocolTracer.prototype.logWillHandleResponse):
2975         (WebInspector.LoggingProtocolTracer.prototype.logDidHandleResponse):
2976         (WebInspector.LoggingProtocolTracer.prototype.logWillHandleEvent):
2977         (WebInspector.LoggingProtocolTracer.prototype.logDidHandleEvent):
2978         (WebInspector.LoggingProtocolTracer.prototype._processEntry):
2979         * UserInterface/Protocol/ProtocolTracer.js: Added.
2980         (WebInspector.ProtocolTracer.prototype.logStarted):
2981         (WebInspector.ProtocolTracer.prototype.logFrontendException):
2982         (WebInspector.ProtocolTracer.prototype.logProtocolError):
2983         (WebInspector.ProtocolTracer.prototype.logFrontendRequest):
2984         (WebInspector.ProtocolTracer.prototype.logWillHandleResponse):
2985         (WebInspector.ProtocolTracer.prototype.logDidHandleResponse):
2986         (WebInspector.ProtocolTracer.prototype.logWillHandleEvent):
2987         (WebInspector.ProtocolTracer.prototype.logDidHandleEvent):        (WebInspector.ProtocolTracer.prototype.logFinished):
2988         (WebInspector.ProtocolTracer):
2989         * UserInterface/Test.html:
2990
2991 2015-12-09  Brian Burg  <bburg@apple.com>
2992
2993         Web Inspector: zoom with Ctrl +/- doesn't work correctly when inspector is docked
2994         https://bugs.webkit.org/show_bug.cgi?id=152076
2995
2996         Reviewed by Timothy Hatcher.
2997
2998         When computing the new width or height of the inspector, take the zoom level into
2999         account. window.inner{Width,Height} are in document pixels, but we need to specify
3000         device pixels to InspectorFrontendHost.
3001
3002         * UserInterface/Base/Main.js:
3003
3004 2015-12-08  Joseph Pecoraro  <pecoraro@apple.com>
3005
3006         Web Inspector: Workaround arrow function issue in TimelineOverviewGraph.js
3007         https://bugs.webkit.org/show_bug.cgi?id=152031
3008
3009         Reviewed by Timothy Hatcher.
3010
3011         * UserInterface/Views/TimelineOverviewGraph.js:
3012         (WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
3013         Workaround an existing arrow function issue by moving off of arrow functions here.
3014
3015 2015-12-08  Matt Baker  <mattbaker@apple.com>
3016
3017         Web Inspector: Add a hidden property to TreeOutline
3018         https://bugs.webkit.org/show_bug.cgi?id=152014
3019
3020         Reviewed by Timothy Hatcher.
3021
3022         * UserInterface/Views/NavigationSidebarPanel.js:
3023         Removed static property for "hidden" CSS class. No longer used.
3024         (WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline):
3025         Fixed bug in order of visibleTreeOutlines add/remove.
3026         (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
3027
3028         * UserInterface/Views/TimelineSidebarPanel.js:
3029         (WebInspector.TimelineSidebarPanel):
3030         (WebInspector.TimelineSidebarPanel.prototype._changeViewMode):
3031
3032         * UserInterface/Views/TreeOutline.js:
3033         (WebInspector.TreeOutline):
3034         (WebInspector.TreeOutline.prototype.get hidden):
3035         (WebInspector.TreeOutline.prototype.set hidden):
3036         Added hidden property, set DOM element hidden attribute.
3037         (WebInspector.TreeElement.prototype.set hidden):
3038         Remove CSS class, set DOM element hidden attribute.
3039         (WebInspector.TreeElement.prototype._attach):
3040         (WebInspector.TreeElement.prototype.expand):
3041
3042 2015-12-08  Matt Baker  <mattbaker@apple.com>
3043
3044         Web Inspector: Global Breakpoints should always be visible
3045         https://bugs.webkit.org/show_bug.cgi?id=151066
3046
3047         Reviewed by Timothy Hatcher.
3048
3049         * UserInterface/Views/DebuggerSidebarPanel.js:
3050         (WebInspector.DebuggerSidebarPanel):
3051         Turn off filtering for Global Breakpoints elements.
3052
3053         * UserInterface/Views/NavigationSidebarPanel.js:
3054         (WebInspector.NavigationSidebarPanel.prototype.suppressFilteringOnTreeElements):
3055         Allow filtering to be turned off for specific tree elements.
3056         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
3057         Make element visible if filtering suppressed.
3058         (WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults):
3059         Visible elements with filtering disabled aren't considered when
3060         showing/hiding the empty content placeholder.
3061
3062 2015-12-07  Brian Burg  <bburg@apple.com>
3063
3064         Web Inspector: Uncaught Exception page should have better styles and handle more error cases
3065         https://bugs.webkit.org/show_bug.cgi?id=151923
3066
3067         Reviewed by Timothy Hatcher.
3068
3069         Restructure the Uncaught Exception reporting page to act more like
3070         a modal sheet. Distinguish between uncaught exceptions before and
3071         after the frontend is initially loaded. If the frontend is loaded,
3072         add a clickable link that dismisses the sheet and ignores the error.
3073         If the inspector finished loading, then only show at most one
3074         exception at a time, since subsequent interactions can cause spurious
3075         errors when the sheet is active.
3076
3077         Split existing code into multiple functions so it's easier to follow.
3078         Add miscellaneous guards against internal corruption and weird cases.
3079
3080         * UserInterface/Base/Main.js:
3081         (WebInspector.contentLoaded): Store the flag on the global object
3082         in case WebInspector becomes shadowed or otherwise unusable.
3083
3084         * UserInterface/Debug/UncaughtExceptionReporter.css: Renamed from Source/WebInspectorUI/UserInterface/Debug/CatchEarlyErrors.css.
3085         (div.sheet-container):
3086         (div.uncaught-exception-sheet):
3087         (div.uncaught-exception-sheet a):
3088         (div.uncaught-exception-sheet a:active):
3089         (div.uncaught-exception-sheet h2):
3090         (div.uncaught-exception-sheet h1 > img):
3091         (div.uncaught-exception-sheet h2 > img):
3092         (div.uncaught-exception-sheet dl):
3093         (div.uncaught-exception-sheet dt):
3094         (div.uncaught-exception-sheet dd):
3095         (div.uncaught-exception-sheet ul):
3096         (div.uncaught-exception-sheet li):
3097         * UserInterface/Debug/UncaughtExceptionReporter.js: Renamed from CatchEarlyErrors.js.
3098         (stopEventPropagation): Allow clicking whitelisted links on the sheet.
3099         (blockEventHandlers):
3100         (unblockEventHandlers):
3101         (handleUncaughtException):
3102         (dismissErrorSheet):
3103         (createErrorSheet.insertWordBreakCharacters):
3104         (createErrorSheet):
3105         (handleLinkClick):
3106         * UserInterface/Main.html:
3107         * UserInterface/Protocol/MessageDispatcher.js:
3108         (WebInspector.dispatchMessageFromBackend): Don't try to dispatch
3109         messages from the backend when showing the error sheet. They will
3110         probably fail, so suspend dispatching until the sheet is dismissed.
3111
3112 2015-12-06  Devin Rousso  <dcrousso+webkit@gmail.com>
3113
3114         Web Inspector: Regression (r192936) - changing selectors in the visual styles sidebar is broken
3115         https://bugs.webkit.org/show_bug.cgi?id=151924
3116
3117         Reviewed by Brian Burg.
3118
3119         * UserInterface/Views/VisualStyleSelectorSection.js:
3120         (WebInspector.VisualStyleSelectorSection):
3121         (WebInspector.VisualStyleSelectorSection.prototype._selectorChanged):
3122         Now uses an event listener instead of an "onselect" function.
3123
3124 2015-12-06  Matt Baker  <mattbaker@apple.com>
3125
3126         Web Inspector: Comparisons in setters should use the massaged value (" = x || 0/false/null/etc")
3127         https://bugs.webkit.org/show_bug.cgi?id=151910
3128
3129         Reviewed by Timothy Hatcher.
3130
3131         Updated setters that use default values to convert falsy inputs to the default value
3132         before compariing against the current value.
3133
3134         * UserInterface/Models/TimelineMarker.js:
3135         (WebInspector.TimelineMarker.prototype.set time):
3136         Assert new value is a number.
3137
3138         * UserInterface/Views/DataGrid.js:
3139         (WebInspector.DataGridNode.prototype.set hidden):
3140         (WebInspector.DataGridNode.prototype.set data):
3141         Assert new value is of type object. Use shallowEqual compare before setting value.
3142
3143         * UserInterface/Views/GeneralTreeElement.js:
3144         (WebInspector.GeneralTreeElement.prototype.set classNames):
3145         Use shallowEqual compare before setting value.
3146         (WebInspector.GeneralTreeElement.prototype.set mainTitle):
3147         (WebInspector.GeneralTreeElement.prototype.set subtitle):
3148         (WebInspector.GeneralTreeElement.prototype.set status):
3149         (WebInspector.GeneralTreeElement.prototype.set tooltipHandledSeparately):
3150
3151         * UserInterface/Views/TimelineOverview.js:
3152         (WebInspector.TimelineOverview.prototype.set startTime):
3153         (WebInspector.TimelineOverview.prototype.set currentTime):
3154         (WebInspector.TimelineOverview.prototype.set endTime):
3155         (WebInspector.TimelineOverview.prototype.set scrollStartTime):
3156         (WebInspector.TimelineOverview.prototype.set selectionStartTime):
3157         Check current ruler selectionStartTime before setting value.
3158
3159         * UserInterface/Views/TimelineOverviewGraph.js:
3160         (WebInspector.TimelineOverviewGraph.prototype.set zeroTime):
3161         (WebInspector.TimelineOverviewGraph.prototype.set startTime):
3162         (WebInspector.TimelineOverviewGraph.prototype.set endTime):
3163         (WebInspector.TimelineOverviewGraph.prototype.set currentTime):
3164
3165         * UserInterface/Views/TimelineRuler.js:
3166         (WebInspector.TimelineRuler):
3167         (WebInspector.TimelineRuler.prototype.set allowsClippedLabels):
3168         (WebInspector.TimelineRuler.prototype.set formatLabelCallback):
3169         (WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection):
3170         (WebInspector.TimelineRuler.prototype.set zeroTime):
3171         (WebInspector.TimelineRuler.prototype.set startTime):
3172         (WebInspector.TimelineRuler.prototype.set endTime):
3173         (WebInspector.TimelineRuler.prototype.set secondsPerPixel):
3174         (WebInspector.TimelineRuler.prototype.set selectionStartTime):
3175         (WebInspector.TimelineRuler.prototype.set selectionEndTime):
3176         (WebInspector.TimelineRuler.prototype.set duration): Deleted.
3177         The ruler duration and "pinned" state are controlled by setting an end
3178         time. Removed since it wasn't being used, and there shouldn't be two
3179         ways to the exact same thing.
3180
3181         * UserInterface/Views/TimelineView.js:
3182         (WebInspector.TimelineView.prototype.set zeroTime):
3183         (WebInspector.TimelineView.prototype.set startTime):
3184         (WebInspector.TimelineView.prototype.set endTime):
3185
3186 2015-12-04  Commit Queue  <commit-queue@webkit.org>
3187
3188         Unreviewed, rolling out r193486.
3189         https://bugs.webkit.org/show_bug.cgi?id=151904
3190
3191         Causes Infinite Recursion in Timeline Recording (Requested by
3192         JoePeck on #webkit).
3193
3194         Reverted changeset:
3195
3196         "Web Inspector: when a marked-dirty subview is attached to a
3197         parent View, dirtyDescendantsCount gets out of sync"
3198         https://bugs.webkit.org/show_bug.cgi?id=151876
3199         http://trac.webkit.org/changeset/193486
3200
3201 2015-12-04  Joseph Pecoraro  <pecoraro@apple.com>
3202
3203         Web Inspector: Uncaught Exception with Reload shortcut in JSContext Inspector
3204         https://bugs.webkit.org/show_bug.cgi?id=151896
3205
3206         Reviewed by Timothy Hatcher.
3207
3208         * UserInterface/Base/Main.js:
3209         (WebInspector.contentLoaded):
3210         Do not implicitly prevent default on these keyboard shortcuts
3211         so we can system beep if we do not do anything.
3212
3213         (WebInspector._reloadPage):
3214         (WebInspector._reloadPageIgnoringCache):
3215         Bail if there is no PageAgent without preventing default for
3216         a beep system beep. Prevent default if we did something.
3217
3218 2015-12-04  Matt Baker  <mattbaker@apple.com>
3219
3220         Web Inspector: when a marked-dirty subview is attached to a parent View, dirtyDescendantsCount gets out of sync
3221         https://bugs.webkit.org/show_bug.cgi?id=151876
3222
3223         Reviewed by Brian Burg.
3224
3225         * UserInterface/Views/NewTabContentView.js:
3226         (WebInspector.NewTabContentView.prototype._updateShownTabs):
3227         Removed workaround added in https://bugs.webkit.org/show_bug.cgi?id=151594.
3228
3229         * UserInterface/Views/View.js:
3230         (WebInspector.View._scheduleLayoutForView):
3231         Always perform a synchronous layout when a view that isn't descended from the
3232         root view schedules a layout.
3233
3234 2015-12-04  Brian Burg  <bburg@apple.com>
3235
3236         Web Inspector: support runtime registration of tab type associations
3237         https://bugs.webkit.org/show_bug.cgi?id=151594
3238
3239         Reviewed by Joseph Pecoraro.
3240
3241         We want to add special tabs that only exist in engineering builds
3242         for debugging purposes. Though the relevant models and views can be
3243         put in the Debug/ directory to exclude them from production builds,
3244         there's no way to register tabs conditionally at runtime; tabs are
3245         hardcoded.
3246
3247         This patch makes it possible to register new tab types at runtime.
3248         First, WebInspector keeps a map of known, registered tab classes.
3249         Details that were hardcoded before---whether to show in New Tab,
3250         whether a tab can be instantiated given the active domains, UI text,
3251         etc.---are now static methods on the base TabContentView or overidden
3252         in its subclasses. Lastly, a public method allows code in Bootstrap.js
3253         to register tabs at runtime. Doing so sends a notification so the
3254         NewTabContentView can show the newly available tab item.
3255
3256         * UserInterface/Base/Main.js:
3257         (WebInspector.contentLoaded):
3258         (WebInspector.isTabTypeAllowed):
3259         (WebInspector.knownTabClasses): Added, used by NewTabContentView.
3260         (WebInspector._createTabContentViewForType): Renamed from _tabContentViewForType.
3261         (WebInspector._rememberOpenTabs):
3262         (WebInspector._updateNewTabButtonState):
3263         (WebInspector._tryToRestorePendingTabs): Added.
3264
3265         Whenever a new tab is registered, try to restore pending tabs, since
3266         an extra tab won't be added initially when production tabs are added.
3267         But, it could have been saved in the Setting for opened tabs.
3268
3269         (WebInspector.showNewTabTab):
3270         (WebInspector.isNewTabWithTypeAllowed):
3271         (WebInspector.createNewTabWithType):
3272         (WebInspector._tabContentViewForType): Deleted.
3273         * UserInterface/Base/Object.js:
3274         * UserInterface/Views/ConsoleTabContentView.js:
3275         (WebInspector.ConsoleTabContentView):
3276         (WebInspector.ConsoleTabContentView.tabInfo): Added.
3277         * UserInterface/Views/DebuggerTabContentView.js:
3278         (WebInspector.DebuggerTabContentView):
3279         (WebInspector.DebuggerTabContentView.tabInfo): Added.
3280         * UserInterface/Views/ElementsTabContentView.js:
3281         (WebInspector.ElementsTabContentView):
3282         (WebInspector.ElementsTabContentView.tabInfo): Added.
3283         (WebInspector.ElementsTabContentView.isTabAllowed): Added.
3284         * UserInterface/Views/NetworkTabContentView.js:
3285         (WebInspector.NetworkTabContentView):