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