adaeadc2c6e408a62907b57091c5b1a046dff794
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2014-09-10  Joseph Pecoraro  <pecoraro@apple.com>
2
3         Web Inspector: Eliminate typeof "undefined" checks
4         https://bugs.webkit.org/show_bug.cgi?id=136691
5
6         Reviewed by Alexey Proskuryakov.
7
8         * UserInterface/Base/Main.js:
9         (WebInspector.linkifyURLAsNode):
10         (WebInspector.linkifyStringAsFragment):
11         * UserInterface/Protocol/InspectorBackend.js:
12         (InspectorBackend.Command.prototype._invokeWithArguments):
13         * UserInterface/Views/DataGrid.js:
14         (WebInspector.DataGrid.prototype.get resizeMethod):
15         * UserInterface/Views/NavigationBar.js:
16         (WebInspector.NavigationBar.prototype.get minimumWidth):
17
18 2014-09-10  Joseph Pecoraro  <pecoraro@apple.com>
19
20         Web Inspector: Fix obscure ESLint warnings and skip directories
21         https://bugs.webkit.org/show_bug.cgi?id=136686
22
23         Reviewed by Timothy Hatcher.
24
25         * .eslintignore: Added.
26         Skip directories we do not want ESLint to process.
27
28         * .eslintrc:
29         Add rules we've seen and sort sections.
30
31         * UserInterface/Controllers/FormatterContentBuilder.js:
32         (FormatterContentBuilder.prototype._appendIndent):
33         * UserInterface/Models/Color.js:
34         * UserInterface/Models/DOMNodeStyles.js:
35         (WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
36         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
37         * UserInterface/Views/DOMTreeDataGridNode.js:
38         * UserInterface/Views/DOMTreeElement.js:
39         (WebInspector.DOMTreeElement.prototype.ondelete):
40         (WebInspector.DOMTreeElement.prototype._insertInLastAttributePosition):
41         (WebInspector.DOMTreeElement.prototype._distinctClosingTagElement):
42         * UserInterface/Views/EditingSupport.js:
43         (WebInspector.EditingConfig):
44         * UserInterface/Views/LayerTreeDataGridNode.js:
45         (WebInspector.LayerTreeDataGridNode.prototype._makeOutlet):
46         * UserInterface/Views/TreeOutline.js:
47         (TreeOutline.prototype.appendChild):
48         (TreeOutline.prototype.insertChild):
49         (TreeOutline.prototype.removeChildAtIndex):
50         (TreeOutline.prototype.removeChild):
51         (TreeElement.prototype.expandRecursively):
52         Fix linter issues.
53
54 2014-09-10  Joseph Pecoraro  <pecoraro@apple.com>
55
56         Web Inspector: Fix ESLint consistent-return warnings
57         https://bugs.webkit.org/show_bug.cgi?id=136682
58
59         Reviewed by Timothy Hatcher.
60
61         * .eslintrc:
62         * UserInterface/Controllers/BranchManager.js:
63         (WebInspector.BranchManager.prototype.createBranch):
64         * UserInterface/Controllers/FrameResourceManager.js:
65         (WebInspector.FrameResourceManager.prototype._addNewResourceToFrame):
66         * UserInterface/Models/DOMNodeStyles.js:
67         (WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload):
68         * UserInterface/Views/BoxModelDetailsSectionRow.js:
69         (WebInspector.BoxModelDetailsSectionRow.prototype._applyUserInput):
70         * UserInterface/Views/DOMTreeElement.js:
71         (WebInspector.DOMTreeElement.prototype.showChild):
72         (WebInspector.DOMTreeElement.prototype._startEditingTarget):
73         (WebInspector.DOMTreeElement.prototype._startEditing):
74         * UserInterface/Views/EditingSupport.js:
75         * UserInterface/Views/EventListenerSectionGroup.js:
76         (WebInspector.EventListenerSectionGroup.prototype._nodeTextOrLink):
77         * UserInterface/Views/FrameContentView.js:
78         (WebInspector.FrameContentView.prototype._showContentViewForIdentifier):
79         * UserInterface/Views/NavigationBar.js:
80         (WebInspector.NavigationBar.prototype.insertNavigationItem):
81         (WebInspector.NavigationBar.prototype.removeNavigationItem):
82         * UserInterface/Views/QuickConsole.js:
83         (WebInspector.QuickConsole.prototype._insertExecutionContextPathComponentForFrame):
84         * UserInterface/Views/Sidebar.js:
85         (WebInspector.Sidebar.prototype.addSidebarPanel):
86         (WebInspector.Sidebar.prototype.removeSidebarPanel):
87         * UserInterface/Views/TextEditor.js:
88         (WebInspector.TextEditor.prototype.addStyleClassToLine):
89         (WebInspector.TextEditor.prototype.removeStyleClassFromLine):
90         (WebInspector.TextEditor.prototype.toggleStyleClassForLine):
91
92 2014-09-10  Joseph Pecoraro  <pecoraro@apple.com>
93
94         Web Inspector: Fix ESLint no-undef warnings
95         https://bugs.webkit.org/show_bug.cgi?id=136660
96
97         Reviewed by Timothy Hatcher.
98
99         * UserInterface/Models/DOMSearchMatchObject.js:
100         (WebInspector.DOMSearchMatchObject.prototype._generateClassName):
101         (WebInspector.DOMSearchMatchObject.titleForDOMNode):
102         * UserInterface/Models/Gradient.js:
103         (WebInspector.Gradient.fromString):
104         * UserInterface/Views/CodeMirrorAdditions.js:
105         * UserInterface/Views/ReplayDashboardView.js:
106         (WebInspector.ReplayDashboardView):
107
108 2014-09-10  Joseph Pecoraro  <pecoraro@apple.com>
109
110         Web Inspector: Remove unused Console search highlight methods
111         https://bugs.webkit.org/show_bug.cgi?id=136661
112
113         Reviewed by Timothy Hatcher.
114
115         ESLint's no-undef warning complained about some undefined references
116         in these functions that would have thrown exceptions. Turns out this
117         code is unused, and we do highlighting in the console separately.
118
119         * UserInterface/Views/ConsoleCommand.js:
120         (WebInspector.ConsoleCommand.prototype.clearHighlight): Deleted.
121         (WebInspector.ConsoleCommand.prototype.highlightSearchResults): Deleted.
122         (WebInspector.ConsoleCommand.prototype.matchesRegex): Deleted.
123         * UserInterface/Views/ConsoleMessageImpl.js:
124         (WebInspector.ConsoleMessageImpl.prototype.clearHighlight): Deleted.
125         (WebInspector.ConsoleMessageImpl.prototype.highlightSearchResults): Deleted.
126         (WebInspector.ConsoleMessageImpl.prototype.matchesRegex): Deleted.
127
128 2014-09-10  Joseph Pecoraro  <pecoraro@apple.com>
129
130         Web Inspector: Fix ESLint* no-avoidable-bind warnings
131         https://bugs.webkit.org/show_bug.cgi?id=136690
132
133         Reviewed by Timothy Hatcher.
134
135         * UserInterface/Protocol/RemoteObject.js:
136         (WebInspector.LocalJSONObject.prototype._children):
137         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
138         (WebInspector.CSSStyleDetailsSidebarPanel):
139         * UserInterface/Views/LayerTreeSidebarPanel.js:
140         (WebInspector.LayerTreeSidebarPanel.prototype._updateDataGrid):
141         * UserInterface/Views/LogContentView.js:
142         (WebInspector.LogContentView.prototype._filterMessages):
143         * UserInterface/Views/TextResourceContentView.js:
144         (WebInspector.TextResourceContentView.prototype.get supplementalRepresentedObjects):
145
146 2014-09-09  Benjamin Poulain  <bpoulain@apple.com>
147
148         Disable the "unreachable-code" warning
149         https://bugs.webkit.org/show_bug.cgi?id=136677
150
151         Reviewed by Darin Adler.
152
153         * Configurations/Base.xcconfig:
154
155 2014-09-08  Joseph Pecoraro  <pecoraro@apple.com>
156
157         Web Inspector: Fix ESLint no-trailing-spaces warnings
158         https://bugs.webkit.org/show_bug.cgi?id=136657
159
160         Reviewed by Andy Estes.
161
162         * .eslintrc:
163         * UserInterface/Base/DOMUtilities.js:
164         * UserInterface/Base/URLUtilities.js:
165         (relativePath):
166         * UserInterface/Base/Utilities.js:
167         * UserInterface/Controllers/CodeMirrorColorEditingController.js:
168         (WebInspector.CodeMirrorColorEditingController.prototype._colorPickerColorChanged):
169         * UserInterface/Controllers/CodeMirrorDragToAdjustNumberController.js:
170         (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.set enabled):
171         (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanAdjustObjectAtPoint):
172         * UserInterface/Controllers/CodeMirrorEditingController.js:
173         (WebInspector.CodeMirrorEditingController.prototype.handleKeydownEvent):
174         * UserInterface/Controllers/CodeMirrorGradientEditingController.js:
175         (WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopWasSelected):
176         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
177         (WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
178         * UserInterface/Controllers/DragToAdjustController.js:
179         (WebInspector.DragToAdjustController.prototype.set active):
180         (WebInspector.DragToAdjustController.prototype._setDragging):
181         (WebInspector.DragToAdjustController.prototype._setTracksMouseClickAndDrag):
182         * UserInterface/External/Esprima/esprima.js:
183         * UserInterface/Models/ApplicationCacheFrame.js:
184         (WebInspector.ApplicationCacheFrame):
185         * UserInterface/Models/ApplicationCacheManifest.js:
186         (WebInspector.ApplicationCacheManifest):
187         (WebInspector.ApplicationCacheManifest.prototype.get manifestURL):
188         * UserInterface/Models/CookieStorageObject.js:
189         * UserInterface/Models/DOMSearchMatchObject.js:
190         (WebInspector.DOMSearchMatchObject.prototype.get title):
191         (WebInspector.DOMSearchMatchObject.titleForDOMNode):
192         * UserInterface/Models/DatabaseObject.js:
193         (WebInspector.DatabaseObject.prototype.getTableNames):
194         * UserInterface/Models/DatabaseTableObject.js:
195         (WebInspector.DatabaseTableObject):
196         * UserInterface/Models/Gradient.js:
197         (WebInspector.Gradient.fromString):
198         (WebInspector.RadialGradient.prototype.toString):
199         * UserInterface/Models/IssueMessage.js:
200         (WebInspector.IssueMessage.prototype._formatTextIfNecessary):
201         * UserInterface/Models/Resource.js:
202         (WebInspector.Resource.prototype.getImageSize.imageDidLoad):
203         (WebInspector.Resource.prototype.getImageSize):
204         * UserInterface/Models/Script.js:
205         (WebInspector.Script.prototype._makeSyntaxTree):
206         * UserInterface/Models/SourceCodeLocation.js:
207         (WebInspector.SourceCodeLocation.prototype.hasDifferentDisplayLocation):
208         * UserInterface/Models/TextMarker.js:
209         * UserInterface/Protocol/PageObserver.js:
210         * UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
211         (WebInspector.ApplicationCacheDetailsSidebarPanel.prototype.set applicationCacheFrame):
212         (WebInspector.ApplicationCacheDetailsSidebarPanel.prototype.refresh):
213         (WebInspector.ApplicationCacheDetailsSidebarPanel.prototype._networkStateUpdated):
214         * UserInterface/Views/ApplicationCacheFrameTreeElement.js:
215         (WebInspector.ApplicationCacheFrameTreeElement):
216         * UserInterface/Views/ApplicationCacheManifestTreeElement.js:
217         (WebInspector.ApplicationCacheManifestTreeElement.prototype.get name):
218         (WebInspector.ApplicationCacheManifestTreeElement.prototype.get secondaryName):
219         * UserInterface/Views/ButtonNavigationItem.js:
220         (WebInspector.ButtonNavigationItem):
221         * UserInterface/Views/ColorPicker.js:
222         * UserInterface/Views/ColorWheel.js:
223         (WebInspector.ColorWheel.prototype._draw):
224         * UserInterface/Views/CompletionSuggestionsView.js:
225         (WebInspector.CompletionSuggestionsView.prototype.show):
226         * UserInterface/Views/ConsoleCommand.js:
227         * UserInterface/Views/ConsolePrompt.js:
228         * UserInterface/Views/ContentFlowTreeElement.js:
229         * UserInterface/Views/CookieStorageTreeElement.js:
230         (WebInspector.CookieStorageTreeElement):
231         * UserInterface/Views/EventListenerSectionGroup.js:
232         (WebInspector.EventListenerSectionGroup.prototype._functionTextOrLink):
233         * UserInterface/Views/GeneralTreeElementPathComponent.js:
234         * UserInterface/Views/GoToLineDialog.js:
235         (WebInspector.GoToLineDialog.prototype._handleKeydownEvent):
236         * UserInterface/Views/LayerTreeDataGridNode.js:
237         (WebInspector.LayerTreeDataGridNode.prototype._makeNameCell):
238         * UserInterface/Views/LayerTreeSidebarPanel.js:
239         * UserInterface/Views/LogContentView.js:
240         (WebInspector.LogContentView.prototype._highlightRanges):
241         * UserInterface/Views/NavigationBar.js:
242         (WebInspector.NavigationBar):
243         * UserInterface/Views/NavigationItem.js:
244         (WebInspector.NavigationItem):
245         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
246         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
247         * UserInterface/Views/ScopeBar.js:
248         * UserInterface/Views/ScopeBarItem.js:
249         (WebInspector.ScopeBarItem):
250         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
251         (WebInspector.ScopeChainDetailsSidebarPanel):
252         * UserInterface/Views/ScriptTimelineDataGridNode.js:
253         (WebInspector.ScriptTimelineDataGridNode.prototype.updateRangeTimes):
254         * UserInterface/Views/ScriptTreeElement.js:
255         (WebInspector.ScriptTreeElement):
256         * UserInterface/Views/SearchBar.js:
257         * UserInterface/Views/SearchResultTreeElement.js:
258         (WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):
259         * UserInterface/Views/Slider.js:
260
261 2014-09-09  Joseph Pecoraro  <pecoraro@apple.com>
262
263         Web Inspector: Fix ESLint eqeqeq warnings
264         https://bugs.webkit.org/show_bug.cgi?id=136658
265
266         Reviewed by Andy Estes.
267
268         * UserInterface/Controllers/DOMTreeManager.js:
269         (WebInspector.DOMTreeManager.prototype.mycallback):
270         (WebInspector.DOMTreeManager.prototype.searchResult):
271         * UserInterface/Models/Breakpoint.js:
272         (WebInspector.Breakpoint.prototype.clearActions):
273         * UserInterface/Models/DOMTree.js:
274         (WebInspector.DOMTree.prototype._requestRootDOMNode.rootObjectAvailable):
275         (WebInspector.DOMTree.prototype._requestRootDOMNode.rootDOMNodeAvailable):
276         (WebInspector.DOMTree.prototype._requestRootDOMNode.dispatchCallbacks):
277         (WebInspector.DOMTree.prototype._requestRootDOMNode):
278         * UserInterface/Models/ProbeSet.js:
279         (WebInspector.ProbeSet.prototype.removeProbe):
280         * UserInterface/Models/ProbeSetDataTable.js:
281         (WebInspector.ProbeSetDataTable.prototype.addSampleForProbe):
282         * UserInterface/Views/CodeMirrorAdditions.js:
283         * UserInterface/Views/CookieStorageContentView.js:
284         (WebInspector.CookieStorageContentView.prototype._filterCookies):
285         (WebInspector.cookieMatchesResourceURL):
286         * UserInterface/Views/DOMStorageContentView.js:
287         (WebInspector.DOMStorageContentView.prototype._editingCallback):
288         * UserInterface/Views/DOMTreeElement.js:
289         (WebInspector.DOMTreeElement):
290         (WebInspector.DOMTreeElement.prototype._updateChildren):
291         (WebInspector.DOMTreeElement.prototype._startEditingTarget):
292         (WebInspector.DOMTreeElement.prototype._textNodeEditingCommitted):
293         * UserInterface/Views/DataGrid.js:
294         (WebInspector.DataGrid.prototype._resizerDragging):
295         * UserInterface/Views/DatabaseContentView.js:
296         (WebInspector.DatabaseContentView.prototype._queryError):
297         * UserInterface/Views/DetailsSectionSimpleRow.js:
298         (.valueElementClicked):
299         (WebInspector.DetailsSectionSimpleRow):
300         * UserInterface/Views/Slider.js:
301         (WebInspector.Slider.prototype.get _maxX):
302         * UserInterface/Views/TreeOutline.js:
303         (TreeElement.prototype.expand):
304
305 2014-09-09  Jono Wells  <jonowells@apple.com>
306
307         Web Inspector: Fix ESLint no-extra-semi
308         https://bugs.webkit.org/show_bug.cgi?id=136666
309
310         Reviewed by Andy Estes.
311
312         Add explicit no-extra-semi rule to .eslintrc. Remove all unnecessary
313         semicolons as identified by ESLint.
314
315         * .eslintrc:
316         * Tools/PrettyPrinting/Formatter.js:
317         (Formatter):
318         * UserInterface/Controllers/Formatter.js:
319         (Formatter):
320         * UserInterface/Models/Resource.js:
321         (WebInspector.Resource.prototype.getImageSize.imageDidLoad):
322         (WebInspector.Resource.prototype.getImageSize):
323         * UserInterface/Views/LayerTreeSidebarPanel.js:
324         (WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid.comparator):
325         (WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid):
326         * UserInterface/Views/ObjectPropertiesSection.js:
327         (WebInspector.ObjectPropertyTreeElement.prototype.callback):
328         (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression):
329
330 2014-09-09  Jono Wells  <jonowells@apple.com>
331
332         Web Inspector: Fix ESLint semi (missing semicolon)
333         https://bugs.webkit.org/show_bug.cgi?id=136665
334
335         Reviewed by Andy Estes.
336
337         Add missing semicolons as identified by ESLint. Add explicit semi rule to .eslintrc.
338
339         * .eslintrc:
340         * Tools/PrettyPrinting/FormatterContentBuilder.js:
341         * Tools/PrettyPrinting/FormatterDebug.js:
342         (Formatter.prototype.debug):
343         * UserInterface/Base/DOMUtilities.js:
344         * UserInterface/Base/EventListener.js:
345         (WebInspector.EventListener):
346         (WebInspector.EventListener.prototype.this._callback):
347         (WebInspector.EventListener.prototype.connect):
348         * UserInterface/Base/Object.js:
349         (WebInspector.Object):
350         (WebInspector.Object.addConstructorFunctions):
351         (WebInspector.Event):
352         * UserInterface/Base/URLUtilities.js:
353         (WebInspector.displayNameForURL):
354         (WebInspector.displayNameForHost):
355         * UserInterface/Base/Utilities.js:
356         (.):
357         * UserInterface/Controllers/BranchManager.js:
358         (WebInspector.BranchManager):
359         * UserInterface/Controllers/CSSStyleManager.js:
360         (WebInspector.CSSStyleManager):
361         * UserInterface/Controllers/CodeMirrorColorEditingController.js:
362         (WebInspector.CodeMirrorColorEditingController):
363         * UserInterface/Controllers/CodeMirrorEditingController.js:
364         (WebInspector.CodeMirrorEditingController):
365         * UserInterface/Controllers/CodeMirrorGradientEditingController.js:
366         (WebInspector.CodeMirrorGradientEditingController):
367         (WebInspector.CodeMirrorGradientEditingController.prototype.popoverDidPresent):
368         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
369         * UserInterface/Controllers/FormatterContentBuilder.js:
370         * UserInterface/Controllers/FormatterSourceMap.js:
371         (WebInspector.FormatterSourceMap.fromBuilder):
372         * UserInterface/Controllers/IssueManager.js:
373         (WebInspector.IssueManager):
374         * UserInterface/Controllers/LogManager.js:
375         (WebInspector.LogManager):
376         * UserInterface/Models/BreakpointAction.js:
377         * UserInterface/Models/CSSCompletions.js:
378         (WebInspector.CSSCompletions):
379         (WebInspector.CSSCompletions.requestCSSNameCompletions):
380         * UserInterface/Models/CSSKeywordCompletions.js:
381         (WebInspector.CSSKeywordCompletions.forProperty):
382         (WebInspector.CSSKeywordCompletions.isColorAwareProperty):
383         * UserInterface/Models/CSSStyleSheet.js:
384         (WebInspector.CSSStyleSheet.resetUniqueDisplayNameNumbers):
385         * UserInterface/Models/Color.js:
386         (WebInspector.Color):
387         (WebInspector.Color.fromString):
388         * UserInterface/Models/DOMNode.js:
389         (WebInspector.DOMNode):
390         * UserInterface/Models/DOMSearchMatchObject.js:
391         (WebInspector.DOMSearchMatchObject.titleForDOMNode):
392         * UserInterface/Models/ExecutionContext.js:
393         (WebInspector.ExecutionContext.supported):
394         * UserInterface/Models/Gradient.js:
395         (WebInspector.LinearGradient):
396         (WebInspector.LinearGradient.linearGradientWithComponents):
397         (WebInspector.RadialGradient):
398         (WebInspector.RadialGradient.radialGradientWithComponents):
399         * UserInterface/Models/IssueMessage.js:
400         (WebInspector.IssueMessage):
401         * UserInterface/Models/ReplaySessionSegment.js:
402         (WebInspector.IncompleteSessionSegment):
403         * UserInterface/Models/Resource.js:
404         (WebInspector.Resource.prototype.associateWithScript):
405         * UserInterface/Models/Script.js:
406         (WebInspector.Script.resetUniqueDisplayNameNumbers):
407         * UserInterface/Models/Setting.js:
408         (WebInspector.Setting):
409         * UserInterface/Models/SourceCodePosition.js:
410         (WebInspector.SourceCodePosition):
411         * UserInterface/Models/SourceMap.js:
412         (WebInspector.SourceMap):
413         (WebInspector.SourceMap.StringCharIterator):
414         * UserInterface/Models/TextMarker.js:
415         (WebInspector.TextMarker):
416         * UserInterface/Models/TextRange.js:
417         (WebInspector.TextRange):
418         * UserInterface/Protocol/InspectorFrontendHostStub.js:
419         (.WebInspector.InspectorFrontendHostStub):
420         * UserInterface/Protocol/MessageDispatcher.js:
421         (WebInspector.dispatchNextQueuedMessageFromBackend):
422         (WebInspector.dispatchMessageFromBackend):
423         * UserInterface/Protocol/RemoteObject.js:
424         (WebInspector.RemoteObject):
425         (WebInspector.RemoteObject.fromPrimitiveValue):
426         (WebInspector.RemoteObject.fromLocalObject):
427         (WebInspector.RemoteObject.resolveNode):
428         (WebInspector.RemoteObject.fromPayload):
429         (WebInspector.RemoteObject.type):
430         (WebInspector.RemoteObjectProperty):
431         (WebInspector.RemoteObjectProperty.fromPrimitiveValue):
432         (WebInspector.LocalJSONObject):
433         * UserInterface/Protocol/ReplayObserver.js:
434         (WebInspector.ReplayPosition.fromProtocol):
435         * UserInterface/Views/BreakpointActionView.js:
436         (WebInspector.BreakpointActionView.displayStringForType):
437         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
438         (WebInspector.CSSStyleDeclarationTextEditor.prototype.if):
439         * UserInterface/Views/ClusterContentView.js:
440         (WebInspector.ClusterContentView.prototype.goBack):
441         (WebInspector.ClusterContentView.prototype.goForward):
442         * UserInterface/Views/CodeMirrorAdditions.js:
443         * UserInterface/Views/ColorWheel.js:
444         (WebInspector.ColorWheel):
445         * UserInterface/Views/ConsoleMessage.js:
446         (WebInspector.ConsoleMessage):
447         (WebInspector.ConsoleMessage.create):
448         * UserInterface/Views/ConsoleMessageImpl.js:
449         (WebInspector.ConsoleMessageImpl):
450         * UserInterface/Views/ContextMenu.js:
451         (WebInspector.ContextMenuItem):
452         (WebInspector.ContextSubMenuItem):
453         (WebInspector.ContextMenu):
454         (WebInspector.ContextMenu.Provider):
455         (WebInspector.ContextMenu.registerProvider):
456         (WebInspector.contextMenuItemSelected):
457         (WebInspector.contextMenuCleared):
458         * UserInterface/Views/DOMTreeElement.js:
459         (WebInspector.DOMTreeElement):
460         * UserInterface/Views/DOMTreeOutline.js:
461         (WebInspector.DOMTreeOutline):
462         * UserInterface/Views/DOMTreeUpdater.js:
463         (WebInspector.DOMTreeUpdater):
464         * UserInterface/Views/DatabaseContentView.js:
465         (WebInspector.DatabaseContentView):
466         * UserInterface/Views/EditingSupport.js:
467         (WebInspector.isBeingEdited):
468         (WebInspector.markBeingEdited):
469         (WebInspector.isEditingAnyField):
470         (WebInspector.isEventTargetAnEditableField):
471         (WebInspector.EditingConfig):
472         (WebInspector.startEditing):
473         * UserInterface/Views/EventListenerSection.js:
474         (WebInspector.EventListenerSection):
475         * UserInterface/Views/EventListenerSectionGroup.js:
476         (WebInspector.EventListenerSectionGroup):
477         * UserInterface/Views/FindBanner.js:
478         * UserInterface/Views/GeneralTreeElement.js:
479         (WebInspector.GeneralTreeElement):
480         * UserInterface/Views/GoToLineDialog.js:
481         (WebInspector.GoToLineDialog):
482         * UserInterface/Views/IndeterminateProgressSpinner.js:
483         (WebInspector.IndeterminateProgressSpinner):
484         * UserInterface/Views/LayoutTimelineDataGrid.js:
485         (WebInspector.LayoutTimelineDataGrid):
486         * UserInterface/Views/LogContentView.js:
487         (WebInspector.LogContentView):
488         * UserInterface/Views/NavigationItem.js:
489         * UserInterface/Views/ObjectPropertiesSection.js:
490         (WebInspector.ObjectPropertiesSection):
491         (WebInspector.ObjectPropertiesSection.CompareProperties):
492         (WebInspector.ObjectPropertyTreeElement):
493         * UserInterface/Views/ProbeSetDetailsSection.js:
494         * UserInterface/Views/PropertiesSection.js:
495         (WebInspector.PropertiesSection):
496         * UserInterface/Views/ResourceTreeElement.js:
497         (WebInspector.ResourceTreeElement.compareResourceTreeElements):
498         (WebInspector.ResourceTreeElement.compareFolderAndResourceTreeElements):
499         * UserInterface/Views/ScriptTimelineDataGrid.js:
500         (WebInspector.ScriptTimelineDataGrid):
501         * UserInterface/Views/SearchResultTreeElement.js:
502         (WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):
503         * UserInterface/Views/TimelineRuler.js:
504         (WebInspector.TimelineRuler):
505         (WebInspector.TimelineRuler.prototype.get allowsClippedLabels):
506         (WebInspector.TimelineRuler.prototype._handleMouseUp):
507         * UserInterface/Views/Toolbar.js:
508         * UserInterface/Views/TreeOutline.js:
509         (TreeOutline.prototype.appendChild):
510         (TreeOutline.prototype.insertChild):
511         (TreeOutline.prototype.removeChildAtIndex):
512         (TreeOutline.prototype.removeChild):
513         (TreeOutline.prototype.removeChildren):
514         (TreeOutline.prototype.removeChildrenRecursive):
515         (TreeOutline.prototype._rememberTreeElement):
516         (TreeOutline.prototype._forgetTreeElement):
517         (TreeOutline.prototype._forgetChildrenRecursive):
518         (TreeOutline.prototype.getCachedTreeElement):
519         (TreeOutline.prototype.findTreeElement):
520         (TreeOutline.prototype._treeElementDidChange):
521         (TreeOutline.prototype.treeElementFromPoint):
522         (TreeOutline.prototype._treeKeyDown):
523         (TreeOutline.prototype.expand):
524         (TreeOutline.prototype.collapse):
525         (TreeOutline.prototype.revealed):
526         (TreeOutline.prototype.reveal):
527         (TreeOutline.prototype.select):
528         (TreeOutline.prototype.revealAndSelect):
529         (TreeElement.prototype._attach):
530         (TreeElement.prototype._detach):
531         (TreeElement.treeElementMouseDown):
532         (TreeElement.treeElementToggled):
533         (TreeElement.treeElementDoubleClicked):
534         (TreeElement.prototype.collapse):
535         (TreeElement.prototype.collapseRecursively):
536         (TreeElement.prototype.expand):
537         (TreeElement.prototype.expandRecursively):
538         (TreeElement.prototype.hasAncestor):
539         (TreeElement.prototype.reveal):
540         (TreeElement.prototype.revealed):
541         (TreeElement.prototype.selectOnMouseDown):
542         (TreeElement.prototype.select):
543         (TreeElement.prototype.revealAndSelect):
544         (TreeElement.prototype.deselect):
545         (TreeElement.prototype.onpopulate):
546         (TreeElement.prototype.traverseNextTreeElement):
547         (TreeElement.prototype.traversePreviousTreeElement):
548         (TreeElement.prototype.isEventWithinDisclosureTriangle):
549         * UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
550         (WebInspector.TreeOutlineDataGridSynchronizer):
551
552 2014-09-08  Joseph Pecoraro  <pecoraro@apple.com>
553
554         Web Inspector: Inspector frequently restores wrong view when opened (often Timelines instead of Resource)
555         https://bugs.webkit.org/show_bug.cgi?id=135965
556
557         Reviewed by Timothy Hatcher.
558
559         There were numerous subtle race conditions in state restoration.
560         This patch intends to fix a number of them to get what feels
561         like sane behavior for selected sidebar state restoration.
562
563         1. Starting a Timeline recording no longer automatically switches to the TimelineContentView.
564         This was making every reload switch to Timelines. If you had
565         a resource selected (e.g. the DOM Tree) we should go back
566         to showing the DOM tree.
567
568         2. Background sidebars should not reveal and select tree elements.
569         This was making resources get selected in Timelines when reloading the page
570         because the background Resources sidebar was restoring selection of the resource.
571         That is an unexpected selection and breaks the experience of Timelines.
572
573         3. ContentView changes during page navigation / reload should not be saved, and improve Resource restoration.
574         If a TimelineContentView was in the ContentBrowser back/forward history,
575         a reload with a resource selected in the Resources sidebar would end up
576         showing the Timelines sidebar. This was because when ContentViews are
577         closed during the navigation, the ContentBrowser would fall back to the
578         remaining TimelineContentView and switch to its only allowed sidebar
579         (Timelines). ResourceSidebarPanel, knowing a resource was selected,
580         would select the MainFrame intending to stay in the Resource sidebar,
581         but the resource is okay with showing in any sidebar, so we stay on Timelines.
582
583         4. Resource sidebar state restoration should propertly restore selection.
584         On reload, state restoration would know the resource to re-select in the
585         Resources sidebar. As ResourceTreeElements are added to the sidebar
586         they are checked against the state restoration cookie. If they match,
587         they would select the element and delete the cookie. Unfortunately,
588         if this was the first TreeElement child being added to a FrameTreeElement,
589         the FrameTreeElement onpopulate would remove all children and re-add
590         them in a unique way. Unfortunately this means the TreeElement we
591         selected based on the cookie, immediately got thrown away and recreated,
592         and we no longer reveal and select it. This is a special case for
593         FrameTreeElements which use the onpopulate SPI. So, instead of starting
594         processing the new element queue, if this is the first time just trigger
595         the onpopulate and elements are made just once.
596
597         5. Show Error Console triggering early, could have unexpected sidebar behavior.
598         Opening Web Inspector directly to the console can run before
599         WebInspector.contentLoaded (DOMContentLoaded). So in that case
600         WebInspector.showFullHeightConsole was not handling if the contentBrowser
601         had no content view yet, and the sidebar might be-reopened later on
602         in contentLoaded based on the setting value.
603
604         6. Improve automatic resource selection for sidebars with multiple tree outlines.
605         Selecting a call frame tree element was unexpectedly changing the
606         selection to a Resource where the breakpoint was set. This was
607         because we were only looking at one of potentially many content
608         tree outlines in the sidebar to see if there was a user action.
609         
610         * UserInterface/Base/Main.js:
611         (WebInspector.contentLoaded):
612         (WebInspector.showFullHeightConsole):
613         (WebInspector.toggleConsoleView):
614         (WebInspector._mainResourceDidChange):
615         (WebInspector._provisionalLoadStarted):
616         (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar):
617         (WebInspector._updateCookieForInspectorViewState):
618         (WebInspector._contentBrowserCurrentContentViewDidChange):
619         * UserInterface/Views/NavigationSidebarPanel.js:
620         (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
621         * UserInterface/Views/ResourceSidebarPanel.js:
622         (WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
623         (WebInspector.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange):
624         * UserInterface/Views/TimelineSidebarPanel.js:
625         (WebInspector.TimelineSidebarPanel.prototype._recordingLoaded):
626
627 2014-09-08  Matt Baker  <mattbaker@apple.com>
628
629         Web Inspector: Add layout test for lowercase CSSProperty names
630         https://bugs.webkit.org/show_bug.cgi?id=135961
631
632         Reviewed by Joseph Pecoraro.
633
634         Modified test components to support testing CSSStyleManager and related classes:
635         - Added required models to Test.html
636         - Added CSSCompletions initialization to Test.js
637         - CSSCompletions doesn't assume presence of CodeMirror.
638
639         * UserInterface/Base/Test.js:
640         (WebInspector.loaded):
641         * UserInterface/Models/CSSCompletions.js:
642         * UserInterface/Test.html:
643
644 2014-09-08  Matt Baker  <mattbaker@apple.com>
645
646         Web Inspector: Fixes to layout test infrastructure
647         https://bugs.webkit.org/show_bug.cgi?id=136360
648
649         Reviewed by Joseph Pecoraro.
650
651         Added missing includes to Test.html, which was breaking tests that
652         depended on SourceCodeLocation and LazySourceCodeLocation. Also fixed
653         bug which prevented test results from being resent after reloading the
654         page under test.
655
656         * UserInterface/Base/Test.js:
657         (InspectorTest.reloadPage):
658         * UserInterface/Test.html:
659
660 2014-09-07  Timothy Hatcher  <timothy@apple.com>
661
662         Use a <circle> instead of a <path> in DownloadArrow.svg.
663         https://bugs.webkit.org/show_bug.cgi?id=136608
664
665         Reviewed by Antoine Quint.
666
667         * UserInterface/Images/DownloadArrow.svg:
668         * UserInterface/Views/TreeElementStatusButton.css:
669         (.item > .status > .status-button > svg .filled):
670         (body.mac-platform.legacy .item > .status > .status-button > svg .filled):
671         (:focus .item.selected > .status > .status-button > svg .filled):
672         (.item > .status > .status-button > svg .stroked):
673         (body.mac-platform.legacy .item > .status > .status-button > svg .stroked):
674         (:focus .item.selected > .status > .status-button > svg .stroked):
675         Tweak CSS selectors to apply to other shapes, not just path.
676
677 2014-09-06  Darin Adler  <darin@apple.com>
678
679         Make updates suggested by new version of Xcode
680         https://bugs.webkit.org/show_bug.cgi?id=136603
681
682         Reviewed by Mark Rowe.
683
684         * Configurations/Base.xcconfig: Added CLANG_WARN_BOOL_CONVERSION, CLANG_WARN_CONSTANT_CONVERSION,
685         CLANG_WARN_EMPTY_BODY, CLANG_WARN_ENUM_CONVERSION, CLANG_WARN_INT_CONVERSION,
686         CLANG_WARN_UNREACHABLE_CODE, CLANG_WARN__DUPLICATE_METHOD_MATCH, ENABLE_STRICT_OBJC_MSGSEND,
687         GCC_WARN_UNDECLARED_SELECTOR, and GCC_WARN_UNUSED_FUNCTION as suggested by Xcode update check.
688         Also removed duplicate GCC_WARN_UNUSED_VARIABLE line.
689
690         * WebInspectorUI.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.
691
692 2014-09-02  Brian J. Burg  <burg@cs.washington.edu>
693
694         LegacyProfiler: remove redundant ProfileNode members and other cleanup
695         https://bugs.webkit.org/show_bug.cgi?id=136380
696
697         Reviewed by Timothy Hatcher.
698
699         Remove unused Profile.idleTime member.
700
701         * UserInterface/Models/Profile.js:
702         (WebInspector.Profile.prototype.get idleTime): Deleted.
703         * UserInterface/Models/ScriptTimelineRecord.js:
704         (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
705
706 2014-09-02  Brian J. Burg  <burg@cs.washington.edu>
707
708         Web Inspector: remove ProfilerAgent and legacy profiler files in the frontend
709         https://bugs.webkit.org/show_bug.cgi?id=136462
710
711         Reviewed by Timothy Hatcher.
712
713         The legacy profiler manager didn't do anything, and its views and models
714         have been superseded by new views and models based on the Timeline classes.
715
716         * .eslintrc:
717         * UserInterface/Base/Main.js:
718         (WebInspector.loaded):
719         (WebInspector.openURL): Remove profile URL handling code.
720         * UserInterface/Controllers/LegacyProfileManager.js: Removed.
721         * UserInterface/Main.html:
722         * UserInterface/Protocol/ConsoleObserver.js:
723         (WebInspector.ConsoleObserver.prototype.messageAdded):
724         * UserInterface/Protocol/InspectorFrontendAPI.js:
725         (InspectorFrontendAPI.isProfilingJavaScript): Deleted.
726         (InspectorFrontendAPI.startProfilingJavaScript): Deleted.
727         (InspectorFrontendAPI.stopProfilingJavaScript): Deleted.
728         * UserInterface/Protocol/LegacyProfilerObserver.js: Removed.
729         * UserInterface/Views/LegacyBottomUpProfileDataGridTree.js: Removed.
730         * UserInterface/Views/LegacyJavaScriptProfileObject.js: Removed.
731         * UserInterface/Views/LegacyJavaScriptProfileType.js: Removed.
732         * UserInterface/Views/LegacyJavaScriptProfileView.css: Removed.
733         * UserInterface/Views/LegacyJavaScriptProfileView.js: Removed.
734         * UserInterface/Views/LegacyProfileDataGridTree.js: Removed.
735         * UserInterface/Views/LegacyProfileObject.js: Removed.
736         * UserInterface/Views/LegacyProfileType.js: Removed.
737         * UserInterface/Views/LegacyProfileView.css: Removed.
738         * UserInterface/Views/LegacyProfileView.js: Removed.
739         * UserInterface/Views/LegacyTopDownProfileDataGridTree.js: Removed.
740
741 2014-08-29  Saam Barati  <saambarati1@gmail.com>
742
743         Web Inspector: Create a UI for displaying JavaScript type information
744         https://bugs.webkit.org/show_bug.cgi?id=135142
745
746         Reviewed by Joseph Pecoraro.
747
748         JavaScriptCore now has a type profiler. This patch provides a frontend
749         user interface for displaying this type information in the Web Inspector.
750         The user interface works by placing inline "type tokens" next to important
751         JavaScript expressions: function arguments, function return types, and 
752         variable declarations. Type information can also be seen for almost every
753         JavaScipt expression just by hovering over it while viewing a JavaScript file.
754
755         Currently, turning on the type profiler is expensive, so the inspector
756         ensures to never turn on type profiling until the user specifically asks 
757         for type information to be turned on.
758
759         * UserInterface/Base/Main.js:
760         (WebInspector.loaded):
761         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
762         (WebInspector.CodeMirrorTokenTrackingController.prototype._startTracking):
763         (WebInspector.CodeMirrorTokenTrackingController.prototype._processNewHoveredToken):
764         Added a new type profiling mode.
765
766         * UserInterface/Controllers/FormatterSourceMap.js:
767         (WebInspector.FormatterSourceMap.prototype.originalToFormatted):
768         (WebInspector.FormatterSourceMap.prototype.originalPositionToFormatted):
769         (WebInspector.FormatterSourceMap.prototype.formattedToOriginal):
770         (WebInspector.FormatterSourceMap.prototype.formattedToOriginalOffset):
771         * UserInterface/Controllers/TypeTokenAnnotator.js: Added.
772         (WebInspector.TypeTokenAnnotator):
773         (WebInspector.TypeTokenAnnotator.prototype.get isActive):
774         (WebInspector.TypeTokenAnnotator.prototype.get sourceCodeTextEditor):
775         (WebInspector.TypeTokenAnnotator.prototype.pause):
776         (WebInspector.TypeTokenAnnotator.prototype.resume):
777         (WebInspector.TypeTokenAnnotator.prototype.refresh):
778         (WebInspector.TypeTokenAnnotator.prototype.reset):
779         (WebInspector.TypeTokenAnnotator.prototype.toggleTypeAnnotations):
780         (WebInspector.TypeTokenAnnotator.prototype._insertAnnotations.):
781         (WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode):
782         (WebInspector.TypeTokenAnnotator.prototype._insertToken):
783         (WebInspector.TypeTokenAnnotator.prototype.isLineTerminator):
784         (WebInspector.TypeTokenAnnotator.prototype._translateToOffsetAfterFunctionParameterList):
785         (WebInspector.TypeTokenAnnotator.prototype._clearTimeoutIfNeeded):
786         This class is responsible for producing the inline "type token" annotations.
787
788         * UserInterface/Images/NavigationItemTypes.svg: Added.
789         * UserInterface/Main.html:
790         * UserInterface/Models/Script.js:
791         (WebInspector.Script.prototype.get scriptSyntaxTree):
792         * UserInterface/Models/ScriptSyntaxTree.js:
793         (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
794         (WebInspector.ScriptSyntaxTree.prototype.):
795         (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
796         (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
797         * UserInterface/Views/ScriptContentView.js:
798         (WebInspector.ScriptContentView):
799         (WebInspector.ScriptContentView.prototype.get navigationItems):
800         (WebInspector.ScriptContentView.prototype._contentDidPopulate):
801         (WebInspector.ScriptContentView.prototype._toggleTypeAnnotations):
802         (WebInspector.ScriptContentView.prototype._showJavaScriptTypeInformationSettingChanged):
803         * UserInterface/Views/SourceCodeTextEditor.js:
804         (WebInspector.SourceCodeTextEditor):
805         (WebInspector.SourceCodeTextEditor.prototype.shown):
806         (WebInspector.SourceCodeTextEditor.prototype.hidden):
807         (WebInspector.SourceCodeTextEditor.prototype.canShowTypeAnnotations):
808         (WebInspector.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
809         (WebInspector.SourceCodeTextEditor.prototype.showPopoverForTypes):
810         (WebInspector.SourceCodeTextEditor.prototype.prettyPrint):
811         (WebInspector.SourceCodeTextEditor.prototype._populateWithContent):
812         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidPause):
813         (WebInspector.SourceCodeTextEditor.prototype._debuggerDidResume):
814         (WebInspector.SourceCodeTextEditor.prototype._updateTokenTrackingControllerState):
815         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
816         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation.handler):
817         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation):
818         (WebInspector.SourceCodeTextEditor.prototype._showPopover):
819         (WebInspector.SourceCodeTextEditor.prototype.editingControllerDidFinishEditing):
820         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenAnnotator):
821         (WebInspector.SourceCodeTextEditor.prototype._enableScrollEventsForTypeTokenAnnotator):
822         (WebInspector.SourceCodeTextEditor.prototype._disableScrollEventsForTypeTokenAnnotator):
823         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler.scrollHandler):
824         (WebInspector.SourceCodeTextEditor.prototype._makeTypeTokenScrollEventHandler):
825         * UserInterface/Views/TextContentView.js:
826         (WebInspector.TextContentView.prototype.get navigationItems):
827         * UserInterface/Views/TextEditor.js:
828         (WebInspector.TextEditor.prototype.set formatted):
829         (WebInspector.TextEditor.prototype.canShowTypeAnnotations):
830         (WebInspector.TextEditor.prototype.visibleRangeOffsets):
831         (WebInspector.TextEditor.prototype.originalOffsetToCurrentPosition):
832         (WebInspector.TextEditor.prototype.currentOffsetToCurrentPosition):
833         (WebInspector.TextEditor.prototype.currentPositionToOriginalOffset):
834         (WebInspector.TextEditor.prototype.currentPositionToCurrentOffset):
835         (WebInspector.TextEditor.prototype.setInlineWidget):
836         (WebInspector.TextEditor.prototype.addScrollHandler):
837         (WebInspector.TextEditor.prototype.removeScrollHandler):
838         (WebInspector.TextEditor.prototype._scrollIntoViewCentered):
839         * UserInterface/Views/TextResourceContentView.js:
840         (WebInspector.TextResourceContentView):
841         (WebInspector.TextResourceContentView.prototype.get navigationItems):
842         (WebInspector.TextResourceContentView.prototype._contentDidPopulate):
843         (WebInspector.TextResourceContentView.prototype._toggleTypeAnnotations):
844         (WebInspector.TextResourceContentView.prototype._showJavaScriptTypeInformationSettingChanged):
845         * UserInterface/Views/TypePropertiesSection.js: Added.
846         (WebInspector.TypePropertiesSection):
847         (WebInspector.TypePropertiesSection.prototype.onpopulate):
848         (WebInspector.TypePropertiesSection.PropertyComparator):
849         (WebInspector.TypePropertyTreeElement):
850         (WebInspector.TypePropertyTreeElement.prototype.onpopulate):
851         * UserInterface/Views/TypeTokenView.css: Added.
852         (.type-token):
853         (.type-token-left-spacing):
854         (.type-token-right-spacing):
855         (.type-token-function, .type-token-boolean):
856         (.type-token-number):
857         (.type-token-string):
858         (.type-token-default):
859         (.type-token-empty):
860         (.type-token-many):
861         * UserInterface/Views/TypeTokenView.js: Added.
862         (WebInspector.TypeTokenView):
863         (WebInspector.TypeTokenView.titleForPopover):
864         (WebInspector.TypeTokenView.prototype.update):
865         (WebInspector.TypeTokenView.prototype._setUpMouseoverHandlers):
866         (WebInspector.TypeTokenView.prototype._shouldShowPopover):
867         The inline "type token" view.
868
869 2014-08-29  Saam Barati  <sbarati@apple.com>
870
871         Web Inspector: Fix how Popover animates
872         https://bugs.webkit.org/show_bug.cgi?id=136353
873
874         Reviewed by Timothy Hatcher.
875
876         Popovers currently don't animate properly because they use 
877         window.requestAnimationFrame which won't fire its callback 
878         while the inspector is paused in the debugger. This patches
879         switches the callback mechanism to setTimeout and also changes
880         how a Popover's anchor animates to prevent visual glitches.
881
882         Popover also has a new function that allows a new target
883         frame and new content to be set simultaneously and to
884         animate to show the new content while changing the 
885         location of the popover frame.
886
887         SourceCodeTextEditor uses Popover's new API for animating
888         between popovers when paused in the debugger. SourceCodeTextEditor 
889         also now ensures proper balancing of popover tracking event 
890         listeners.
891
892         * UserInterface/Views/Popover.js:
893         (WebInspector.Popover.prototype.present):
894         (WebInspector.Popover.prototype.presentNewContentWithFrame):
895         (WebInspector.Popover.prototype.dismiss):
896         (WebInspector.Popover.prototype._update):
897         (WebInspector.Popover.prototype.drawBackground):
898         (WebInspector.Popover.prototype._animateFrame):
899         (WebInspector.Popover.prototype._drawFrame):
900         (WebInspector.Popover.prototype._addListenersIfNeeded):
901         (WebInspector.Popover.prototype._animateFrame.drawBackground): Deleted.
902         * UserInterface/Views/SourceCodeTextEditor.js:
903         (WebInspector.SourceCodeTextEditor.prototype._showPopover):
904         (WebInspector.SourceCodeTextEditor.prototype._dismissPopover):
905         (WebInspector.SourceCodeTextEditor.prototype._trackPopoverEvents):
906
907 2014-08-28  Saam Barati  <sbarati@apple.com>
908
909         Web Inspector: Write tests for ScriptSyntaxTree and fix bugs in the data structure
910         https://bugs.webkit.org/show_bug.cgi?id=136272
911
912         Reviewed by Joseph Pecoraro.
913
914         Include the necessary files in Test.html to test ScriptSyntaxTree.
915         Also, ScriptSyntaxTree had a couple of errors for two of its nodes
916         where they simply ignored one of the properties on the node.
917         These errors were found while writing the tests and are fixed
918         in this patch.
919
920         * UserInterface/Models/ScriptSyntaxTree.js:
921         (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
922         * UserInterface/Test.html:
923
924 2014-08-27  Saam Barati  <sbarati@apple.com>
925
926         Web Inspector: Layout issues for popover on not legacy OS
927         https://bugs.webkit.org/show_bug.cgi?id=136268
928
929         Reviewed by Joseph Pecoraro.
930
931         On the latest OS, popovers invade the title bar's space which will
932         cause layout issues because the title bar will render above
933         the popover. Fix this by providing some padding for popovers on 
934         not legacy OSs.
935
936         * UserInterface/Views/Popover.js:
937
938 2014-08-27  Timothy Hatcher  <timothy@apple.com>
939
940         REGRESSION: Web Inspector: Legacy toolbar has two different colors in unfocused windowed mode
941         https://bugs.webkit.org/show_bug.cgi?id=136289
942
943         Reviewed by Darin Adler.
944
945         * UserInterface/Views/Toolbar.css:
946         (body.mac-platform.legacy .toolbar): Override the background-color as transparent. Non-legacy
947         uses a solid color instead of a gradient for window-inactive.
948
949 2014-08-26  Saam Barati  <sbarati@apple.com>
950
951         Web Inspector: Fix CodeMirrorTokenTrackingController::_startTracking assertion
952         https://bugs.webkit.org/show_bug.cgi?id=136160
953
954         Reviewed by Joseph Pecoraro.
955
956         Check if '_tracking' is already true before calling '_startTracking'
957         to prevent the assertion from always firing.
958
959         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
960         (WebInspector.CodeMirrorTokenTrackingController.prototype._mouseEntered):
961
962 2014-08-25  Brent Fulgham  <bfulgham@apple.com>
963
964         [Win] Pass OFFICIAL_BUILD flag to WebInspectorUI build process
965         https://bugs.webkit.org/show_bug.cgi?id=136229
966
967         Reviewed by Dean Jackson.
968
969         * WebInspectorUI.vcxproj/WebInspectorUI.make: Pass OFFICIAL_BUILD
970         flag to build-webinspectorui.pl.
971         * WebInspectorUI.vcxproj/build-webinspectorui.pl: Accept and use
972         the OFFICIAL_BUILD flag.
973
974 2014-08-24  Benjamin Poulain  <benjamin@webkit.org>
975
976         The inspector should not use the "after" pseudo element with the compatibility syntax
977         https://bugs.webkit.org/show_bug.cgi?id=136204
978
979         Reviewed by Darin Adler.
980
981         We should only use hte proper pseudo element syntax inside WebKit.
982
983         * Tools/PrettyPrinting/codemirror-additions.css:
984         * Tools/PrettyPrinting/populate/apple.css:
985
986 2014-08-24  Brian J. Burg  <burg@cs.washington.edu>
987
988         Web Inspector: Rename DOM.RGBA and remove workarounds in the bindings generator
989         https://bugs.webkit.org/show_bug.cgi?id=136025
990
991         Reviewed by Joseph Pecoraro.
992
993         Also rename DOM.RGBA in legacy protocol specifications.
994
995         * Versions/Inspector-iOS-6.0.json:
996         * Versions/Inspector-iOS-7.0.json:
997
998 2014-08-21  Simon Fraser  <simon.fraser@apple.com>
999
1000         Add a button to enable paint flashing in the web inspector
1001         https://bugs.webkit.org/show_bug.cgi?id=136133
1002
1003         Reviewed by Tim Hatcher.
1004         
1005         Add a button to the right of the layer borders button to turn on paint flashing.
1006         Future patches will actually enable this feature.
1007
1008         * Localizations/en.lproj/localizedStrings.js: Tooltip strings.
1009         * UserInterface/Images/PaintFlashing.svg: Added. "Paintbrush" icon.
1010         * UserInterface/Views/DOMTreeContentView.js:
1011         (WebInspector.DOMTreeContentView):
1012         (WebInspector.DOMTreeContentView.prototype.get navigationItems):
1013         (WebInspector.DOMTreeContentView.prototype._togglePaintFlashing):
1014
1015 2014-08-20  Saam Barati  <sbarati@apple.com>
1016
1017         Rename HighFidelityTypeProfiling variables for more clarity
1018         https://bugs.webkit.org/show_bug.cgi?id=135899
1019
1020         Reviewed by Geoffrey Garen.
1021
1022         Change a reference in a comment to a JavaScriptCore file to its 
1023         newly renamed variant.
1024
1025         * UserInterface/Models/ScriptSyntaxTree.js:
1026
1027 2014-08-18  Saam Barati  <sbarati@apple.com>
1028
1029         Web Inspector: Introduce an inspector Abstract Syntax Tree.
1030         https://bugs.webkit.org/show_bug.cgi?id=135763
1031
1032         Reviewed by Joseph Pecoraro.
1033
1034         This patch adds an Abstract Syntax Tree to the Web inspector. 
1035         This syntax tree is modeled off the Esprima.js syntax tree
1036         which complies with the Mozilla Parser API:
1037         https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Parser_API
1038         Script is the owner of the Web Inspector syntax tree, and has an API
1039         for accessing its syntax tree property.
1040
1041         * UserInterface/External/Esprima/esprima.js:
1042         * UserInterface/Main.html:
1043         * UserInterface/Models/Script.js:
1044         (WebInspector.Script):
1045         (WebInspector.Script.prototype.requestScriptSyntaxTree.makeSyntaxTreeAndCallCallback):
1046         (WebInspector.Script.prototype._resolveResource):
1047         (WebInspector.Script.prototype._makeSyntaxTree):
1048         * UserInterface/Models/ScriptSyntaxTree.js: Added.
1049         (WebInspector.ScriptSyntaxTree):
1050         (WebInspector.ScriptSyntaxTree.prototype.get parsedSuccessfully):
1051         (WebInspector.ScriptSyntaxTree.prototype.forEachNode):
1052         (WebInspector.ScriptSyntaxTree.prototype.):
1053         (WebInspector.ScriptSyntaxTree.prototype.filter):
1054         (WebInspector.ScriptSyntaxTree.prototype.filterForNodesInRange):
1055         (WebInspector.ScriptSyntaxTree.prototype.filterByRange):
1056         (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement.removeFunctionsFilter):
1057         (WebInspector.ScriptSyntaxTree.prototype.containsNonEmptyReturnStatement):
1058         (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
1059         (WebInspector.ScriptSyntaxTree.prototype._defaultParserState):
1060         (WebInspector.ScriptSyntaxTree.prototype._recurse):
1061         (WebInspector.ScriptSyntaxTree.prototype._recurseArray):
1062         (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
1063
1064 2014-08-16  Joseph Pecoraro  <pecoraro@apple.com>
1065
1066         Web Inspector: Improve performance of selection range changes viewing Scripts timeline
1067         https://bugs.webkit.org/show_bug.cgi?id=136015
1068
1069         Reviewed by Timothy Hatcher.
1070
1071         * UserInterface/Base/Utilities.js:
1072         (clamp):
1073         Helper function to clamp a value between a min and max.
1074
1075         * UserInterface/Models/ProfileNode.js:
1076         (WebInspector.ProfileNode.prototype.get startTime):
1077         (WebInspector.ProfileNode.prototype.get endTime):
1078         These can be quickly calculated, so avoid full calculation to grab the values.
1079
1080         * UserInterface/Views/ScriptTimelineView.js:
1081         (WebInspector.ScriptTimelineView.prototype.updateLayout):
1082         Update ranges with a smart helper, instead of blindly doing it and needing refresh.
1083
1084         * UserInterface/Views/ProfileNodeDataGridNode.js:
1085         (WebInspector.ProfileNodeDataGridNode.prototype.get rangeEndTime):
1086         (WebInspector.ProfileNodeDataGridNode.prototype.get data):
1087         (WebInspector.ProfileNodeDataGridNode.prototype.updateRangeTimes):
1088         (WebInspector.ProfileNodeDataGridNode.prototype.set rangeStartTime): Deleted.
1089         (WebInspector.ProfileNodeDataGridNode.prototype.set rangeEndTime): Deleted.
1090         * UserInterface/Views/ScriptTimelineDataGridNode.js:
1091         (WebInspector.ScriptTimelineDataGridNode.prototype.updateRangeTimes):
1092         (WebInspector.ScriptTimelineDataGridNode.prototype.set rangeStartTime): Deleted.
1093         (WebInspector.ScriptTimelineDataGridNode.prototype.set rangeEndTime): Deleted.
1094         When updating the range selection, compare to the last range selection
1095         on this DataGridNode. If the visible portion of this node's time range
1096         changes, we need a refresh. Otherwise, we don't need a refresh.
1097
1098 2014-08-15  Joseph Pecoraro  <pecoraro@apple.com>
1099
1100         Web Inspector: Update Scripts/update-LegacyInspectorBackendCommands.rb for the new generator
1101         https://bugs.webkit.org/show_bug.cgi?id=136006
1102
1103         Reviewed by Timothy Hatcher.
1104
1105         * Scripts/update-LegacyInspectorBackendCommands.rb:
1106         Use the new generator and pass the appropriate flags.
1107
1108         * UserInterface/Protocol/Legacy/6.0/InspectorWebBackendCommands.js:
1109         * UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
1110         Newly generated files using the new generator.
1111
1112         * Versions/Inspector-iOS-6.0.json:
1113         Remove unsupported features.
1114
1115 2014-08-15  Joseph Pecoraro  <pecoraro@apple.com>
1116
1117         Web Inspector: Remove forced layouts during recording caused by striped background element resizing
1118         https://bugs.webkit.org/show_bug.cgi?id=136009
1119
1120         Reviewed by Timothy Hatcher.
1121
1122         We used to manually resize and a custom striped background behind
1123         the timeline tree outline content area. This can happen frequently
1124         during timeline recordings causing forced layouts. We can eliminate
1125         the hack and instead put the stripe background on the tree outline.
1126
1127         * UserInterface/Views/TimelineSidebarPanel.js:
1128         (WebInspector.TimelineSidebarPanel.prototype.updateCustomContentOverflow): Deleted.
1129         * UserInterface/Views/TimelineSidebarPanel.css:
1130         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .content .item > .status > .status-button):
1131         (.sidebar > .panel.navigation.timeline > .content > .stripe-background): Deleted.
1132         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content > .stripe-background): Deleted.
1133         Eliminate the striped background element.
1134
1135         * UserInterface/Views/TimelineView.css:
1136         (.panel.navigation.timeline > .content > .navigation-sidebar-panel-content-tree-outline):
1137         (.panel.navigation.timeline.timeline-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
1138         Give the timeline content tree outlines the striped background.
1139
1140         * UserInterface/Views/NavigationSidebarPanel.js:
1141         (WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
1142         (WebInspector.NavigationSidebarPanel.prototype.updateCustomContentOverflow): Deleted.
1143         Remove the now unused updateCustomContentOverflow method.
1144
1145 2014-08-15  Jono Wells  <jonowells@apple.com>
1146
1147         Web Inspector: Inspect Element doesn't always highlight the correct element when inspector is closed before inspecting
1148         https://bugs.webkit.org/show_bug.cgi?id=135995
1149
1150         Reviewed by Joseph Pecoraro.
1151
1152         Change so if an element is inspected via the Inspect Element context menu, selected
1153         node restoration is disallowed until the main resource in the main frame changes.
1154         This way an attempt by a sub-frame will not change the highlighted element in the
1155         Main Frame's DOM tree unexpectedly.
1156
1157         * UserInterface/Controllers/DOMTreeManager.js:
1158         (WebInspector.DOMTreeManager):
1159         (WebInspector.DOMTreeManager.prototype._mainResourceDidChange):
1160         (WebInspector.DOMTreeManager.prototype.inspectElement):
1161
1162 2014-08-15  Brian J. Burg  <burg@cs.washington.edu>
1163
1164         Web Inspector: rewrite CodeGeneratorInspector to be modular and testable
1165         https://bugs.webkit.org/show_bug.cgi?id=131596
1166
1167         Reviewed by Joseph Pecoraro.
1168
1169         Also apply type extraction refactorings to old protocol versions for consistency.
1170
1171         * Versions/Inspector-iOS-6.0.json:
1172         * Versions/Inspector-iOS-7.0.json:
1173
1174 2014-08-15  Timothy Hatcher  <timothy@apple.com>
1175
1176         Web Inspector: Probe details sidebar data grids do not show data
1177         https://bugs.webkit.org/show_bug.cgi?id=135992
1178
1179         Reviewed by Joseph Pecoraro.
1180
1181         * UserInterface/Views/ProbeSetDataGrid.js:
1182         (WebInspector.ProbeSetDataGrid): Make the DataGrid be inline to show the data correctly.
1183
1184 2014-08-15  Timothy Hatcher  <timothy@apple.com>
1185
1186         Web Inspector: Legacy Mac toolbar appearance looks wrong
1187         https://bugs.webkit.org/show_bug.cgi?id=135962
1188
1189         Reviewed by Joseph Pecoraro.
1190
1191         * UserInterface/Views/Toolbar.css:
1192         (body.mac-platform.legacy .toolbar): Don't draw a gradient background when not docked.
1193         Move border-bottom-color from body.mac-platform.legacy.docked .toolbar to here so it
1194         applies all the time as it should have.
1195
1196 2014-08-14  Joseph Pecoraro  <pecoraro@apple.com>
1197
1198         Web Inspector: Dragging Undocked inspector by window title has broken behavior
1199         https://bugs.webkit.org/show_bug.cgi?id=135950
1200
1201         Reviewed by Timothy Hatcher.
1202
1203         * UserInterface/Base/Main.js:
1204         On Mac ports where we the inspector content goes everywhere, window dragging behavior
1205         still exists for the top 22px of the window. So don't do our JavaScript based window
1206         dragging for this special region.
1207
1208         * UserInterface/Models/KeyboardShortcut.js:
1209         (WebInspector.KeyboardShortcut.Modifier.get CommandOrControl):
1210         (WebInspector.KeyboardShortcut.prototype.get displayName):
1211         Instead of calling a host function, use the value already in the frontend.
1212
1213 2014-08-14  Joseph Pecoraro  <pecoraro@apple.com>
1214
1215         Web Inspector: Split console toggle button wrong - Images/Images/SplitToggleUp.svg does not exist
1216         https://bugs.webkit.org/show_bug.cgi?id=135957
1217
1218         Reviewed by Timothy Hatcher.
1219
1220         * UserInterface/Views/LogContentView.js:
1221         (WebInspector.LogContentView):
1222         Wrong image path passed to platformImagePath.
1223
1224 2014-08-14  Joseph Pecoraro  <pecoraro@apple.com>
1225
1226         Web Inspector: Avoid re-binding the same function over and over
1227         https://bugs.webkit.org/show_bug.cgi?id=135949
1228
1229         Reviewed by Timothy Hatcher.
1230
1231         * UserInterface/Controllers/TimelineManager.js:
1232         (WebInspector.TimelineManager.prototype._startAutoCapturing):
1233         (WebInspector.TimelineManager.prototype._stopAutoRecordingSoon):
1234         (WebInspector.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout):
1235         Stash a bound copy of the function once, and reuse it.
1236
1237 2014-08-14  Joseph Pecoraro  <pecoraro@apple.com>
1238
1239         Web Inspector: Timelines can get caught in requestAnimationFrame loop when not recording
1240         https://bugs.webkit.org/show_bug.cgi?id=135946
1241
1242         Reviewed by Timothy Hatcher.
1243
1244         Each TimelineContentView was listening for the TimelineManager's start/stop
1245         capturing events. However, only the active recording could possibly update.
1246         Likewise, if a pre-existing recording started and stopped we did not properly
1247         stop in the case where we were waiting for an event to update the current time,
1248         which would result in an infinite rAF loop of no updates.
1249
1250         * UserInterface/Models/TimelineRecording.js:
1251         (WebInspector.TimelineRecording.prototype.unloaded):
1252         When a timeline recording is unloaded trigger an event.
1253
1254         * UserInterface/Views/TimelineContentView.js:
1255         (WebInspector.TimelineContentView.prototype._startUpdatingCurrentTime):
1256         Assert we were not already waiting.
1257
1258         (WebInspector.TimelineContentView.prototype._stopUpdatingCurrentTime):
1259         Properly handle the case of starting/stoping an already existing recording
1260         without a new event coming in.
1261
1262         (WebInspector.TimelineContentView.prototype._recordingTimesUpdated):
1263         (WebInspector.TimelineContentView.prototype._recordingReset):
1264         Convert to a boolean instead of deleting state.
1265
1266         (WebInspector.TimelineContentView.prototype._recordingUnloaded):
1267         Stop listening to timeline manager events that no longer affect unloaded recordings.
1268
1269 2014-08-13  Jono Wells  <jonowells@apple.com>
1270
1271         Web Inspector: eslint configuration should be stored as .eslintrc
1272         https://bugs.webkit.org/show_bug.cgi?id=135916
1273
1274         .eslintrc file added to allow for ESLint solutions, within editors and otherwise,
1275         to be automatically configured based on the WebKit JavaScript coding style. The
1276         initial file is incomplete.
1277
1278         Reviewed by Joseph Pecoraro.
1279
1280         * .eslintrc: Added.
1281         * External/.eslintrc: Added.
1282
1283 2014-08-13  Timothy Hatcher  <timothy@apple.com>
1284
1285         Web Inspector: Missing semicolon after console.assert in TimelineSidebarPanel.js
1286         https://bugs.webkit.org/show_bug.cgi?id=135917
1287
1288         Reviewed by Joseph Pecoraro.
1289
1290         * UserInterface/Views/TimelineSidebarPanel.js:
1291
1292 2014-08-13  Joseph Pecoraro  <pecoraro@apple.com>
1293
1294         Web Inspector: Inline DataGrid inside details sidebar has double thick top border with legacy styles
1295         https://bugs.webkit.org/show_bug.cgi?id=135894
1296
1297         Reviewed by Timothy Hatcher.
1298
1299         * UserInterface/Views/DetailsSection.css:
1300         (body.mac-platform.legacy .details-section:not(.collapsed) .data-grid.inline):
1301         In legacy styles the details-section header always has a 1px bottom border.
1302         In all styles, an inline data grid had a 1px border everywhere. So, handle
1303         this specific case by removing the top border of an inline data grid
1304         that is inside an expanded details section.
1305
1306 2014-08-13  Joseph Pecoraro  <pecoraro@apple.com>
1307
1308         Web Inspector: "No Filter Results" view only shows once, does not show again
1309         https://bugs.webkit.org/show_bug.cgi?id=135892
1310
1311         Reviewed by Timothy Hatcher.
1312
1313         * UserInterface/Views/NavigationSidebarPanel.js:
1314         (WebInspector.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
1315         We were checking at the wrong level for a parent. Check if the root
1316         placeholder element has a parent or not.
1317
1318 2014-08-13  Joseph Pecoraro  <pecoraro@apple.com>
1319
1320         Web Inspector: Incorrect border colors in event listeners sections in details sidebar
1321         https://bugs.webkit.org/show_bug.cgi?id=135891
1322
1323         Reviewed by Timothy Hatcher.
1324
1325         * UserInterface/Views/DetailsSection.css:
1326         (.details-section .details-section > .header):
1327         (.details-section .details-section:not(.collapsed) > .header):
1328         Remove box-shadow and replace with a bottom border.
1329
1330         (body.mac-platform.legacy .details-section .details-section.collapsed > .header):
1331         (.details-section .details-section.collaspsed > .header): Deleted.
1332         Collapsed was spelled incorrectly so this was not applying properly before.
1333         But correct this for legacy because legacy still uses a box-shadow.
1334
1335 2014-08-13  Joseph Pecoraro  <pecoraro@apple.com>
1336
1337         Web Inspector: Timeline Close buttons can use polish for new and legacy styles
1338         https://bugs.webkit.org/show_bug.cgi?id=135870
1339
1340         Reviewed by Timothy Hatcher.
1341
1342         * UserInterface/Images/Legacy/Close.svg:
1343         Ensure this has fill colors in tree selections.
1344
1345         * UserInterface/Views/TimelineSidebarPanel.css:
1346         (.sidebar > .panel.navigation.timeline > .timelines-content .close-button):
1347         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content .close-button):
1348         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .content .item > .status > .status-button):
1349         Size the close-button for the top overviews differently in new styles (14x14) and legacy (12x12).
1350
1351 2014-08-13  Timothy Hatcher  <timothy@apple.com>
1352
1353         Web Inspector: Workaround a NSWindow change to the title bar.
1354         https://bugs.webkit.org/show_bug.cgi?id=135880
1355
1356         Reviewed by Joseph Pecoraro.
1357
1358         * UserInterface/Base/Main.js:
1359         (WebInspector._updateToolbarHeight): Don't call in legacy mode.
1360
1361         * UserInterface/Views/DashboardContainerView.css:
1362         (.toolbar .dashboard-container):
1363         (.toolbar .dashboard):
1364         Drive-by fix some errant drop-shadows. The transparent border was pushing the inset top
1365         drop shadow down when it shouldn't. Remove duplicate background and shadow.
1366
1367         * UserInterface/Views/Main.css:
1368         (body): Set the background white, never needs to be transparent now.
1369         (body.mac-platform.legacy:not(.docked)): Set background to transparent when not docked in legacy.
1370         (body.docked.bottom): Update border color.
1371         (body.docked.right): Ditto.
1372         (body.docked.bottom.mac-platform.legacy): Keep old border color.
1373         (body.docked.right.mac-platform.legacy): Ditto.
1374
1375         * UserInterface/Views/Toolbar.css:
1376         (.toolbar): Set a default border and background gradient.
1377         (body.window-inactive .toolbar): No gradient but use a solid color when inactive.
1378         (body.mac-platform:not(.legacy):not(.docked) .toolbar): Padding on the top for the title bar.
1379         (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical): Account for title bar height.
1380         (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-and-label-vertical.small-size): Ditto.
1381         (body.mac-platform:not(.legacy):not(.docked) .toolbar.icon-only): Ditto.
1382         (body.mac-platform:not(.legacy):not(.docked) .toolbar.label-only): Ditto.
1383         (body.mac-platform.legacy .toolbar): No inset shadow in legacy when not docked.
1384         (body.mac-platform.legacy.docked .toolbar): Restore legacy border color.
1385         (body.mac-platform.legacy:not(.docked) .toolbar .item.button > .label): Only disable sub-pixel antialiasing on legacy!
1386         (body.mac-platform.legacy.window-inactive .toolbar): Restore legacy border color.
1387
1388 2014-08-13  Timothy Hatcher  <timothy@apple.com>
1389
1390         Web Inspector: Restore Helvetica as the dashboard font in legacy mode
1391         https://bugs.webkit.org/show_bug.cgi?id=135886
1392
1393         Reviewed by Joseph Pecoraro.
1394
1395         * UserInterface/Views/DefaultDashboardView.css:
1396         (body.mac-platform.legacy .toolbar .dashboard.default > .item):
1397
1398 2014-08-12  Joseph Pecoraro  <pecoraro@apple.com>
1399
1400         Web Inspector: Timeline record content view close button does not work after scrolling, invisible scrollbar
1401         https://bugs.webkit.org/show_bug.cgi?id=135863
1402
1403         Reviewed by Timothy Hatcher.
1404
1405         A workaround is to not have position:relative content inside of
1406         scrollable region. Turns out this was only done in two places,
1407         and I do not see any absolutely positioned content in navigation
1408         sidebar content tree outlines. This also fixes clicking on the
1409         reload button if you've scrolled the Resources sidebar. 
1410
1411         * UserInterface/Views/NavigationSidebarPanel.css:
1412         (.navigation-sidebar-panel-content-tree-outline .children): Deleted.
1413         (.navigation-sidebar-panel-content-tree-outline .item): Deleted.
1414
1415 2014-08-12  Joseph Pecoraro  <pecoraro@apple.com>
1416
1417         Web Inspector: Remove unused variable in Platform.js
1418         https://bugs.webkit.org/show_bug.cgi?id=135869
1419
1420         Reviewed by Timothy Hatcher.
1421
1422         * UserInterface/Base/Platform.js:
1423
1424 2014-08-12  Joseph Pecoraro  <pecoraro@apple.com>
1425
1426         Web Inspector: Timeline selection range creation does not work when clicking event bubble or near bottom of overview
1427         https://bugs.webkit.org/show_bug.cgi?id=135849
1428
1429         Reviewed by Timothy Hatcher.
1430
1431         Click events on elements in the graph container (event bubbles) or
1432         in the scroll container (bottom 16px) were becoming the event targets.
1433         As siblings of the ruler, the dispatch would not go through the ruler.
1434         The ruler was supposed to be overlaying everything in the overview,
1435         so give the ruler a z-index so it really is overlaying elements.
1436
1437         * UserInterface/Views/TimelineRuler.css:
1438         (.timeline-ruler):
1439
1440 2014-08-12  Joseph Pecoraro  <pecoraro@apple.com>
1441
1442         Web Inspector: GoToLine dialog clear text button looks poor
1443         https://bugs.webkit.org/show_bug.cgi?id=135828
1444
1445         Reviewed by Timothy Hatcher.
1446
1447         Legacy/CloseWhite.svg was not used, but in the case where the white
1448         close button is needed the thicker bars looks better. Re-use the
1449         Legacy image as the default CloseWhite.svg.
1450
1451         * UserInterface/Images/CloseWhite.svg:
1452         * UserInterface/Images/Legacy/CloseWhite.svg: Removed.
1453
1454 2014-08-12  Joseph Pecoraro  <pecoraro@apple.com>
1455
1456         Web Inspector: Easier Way to go back to the Timeline Overviews
1457         https://bugs.webkit.org/show_bug.cgi?id=135827
1458
1459         Reviewed by Timothy Hatcher.
1460
1461         * Localizations/en.lproj/localizedStrings.js:
1462         Added new tooltip UIString.
1463
1464         * UserInterface/Images/Close.svg:
1465         * UserInterface/Images/CloseLarge.svg:
1466         * UserInterface/Images/Legacy/Close.svg:
1467         Add "stroked" class so the buttons can fill with white on selected rows.
1468         Also re-center the non-legacy images horizontally.
1469
1470         * UserInterface/Views/GeneralTreeElement.js:
1471         (WebInspector.GeneralTreeElement.prototype.set status):
1472         Do not recreate elements if the status did not change.
1473
1474         * UserInterface/Views/LayoutTimelineView.js:
1475         (WebInspector.LayoutTimelineView):
1476         (WebInspector.LayoutTimelineView.prototype._treeElementDeselected):
1477         (WebInspector.LayoutTimelineView.prototype._treeElementSelected):
1478         (WebInspector.LayoutTimelineView.prototype._updateTreeElementWithCloseButton):
1479         (WebInspector.LayoutTimelineView.prototype._closeStatusButtonClicked):
1480         * UserInterface/Views/NetworkTimelineView.js:
1481         (WebInspector.NetworkTimelineView):
1482         (WebInspector.NetworkTimelineView.prototype._treeElementDeselected):
1483         (WebInspector.NetworkTimelineView.prototype._treeElementSelected):
1484         (WebInspector.NetworkTimelineView.prototype._updateTreeElementWithCloseButton):
1485         (WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked):
1486         * UserInterface/Views/OverviewTimelineView.js:
1487         (WebInspector.OverviewTimelineView.prototype._treeElementDeselected):
1488         (WebInspector.OverviewTimelineView.prototype._treeElementSelected):
1489         (WebInspector.OverviewTimelineView.prototype._updateTreeElementWithCloseButton):
1490         (WebInspector.OverviewTimelineView.prototype._closeStatusButtonClicked):
1491         * UserInterface/Views/ScriptTimelineView.js:
1492         (WebInspector.ScriptTimelineView):
1493         (WebInspector.ScriptTimelineView.prototype._treeElementDeselected):
1494         (WebInspector.ScriptTimelineView.prototype._treeElementSelected):
1495         (WebInspector.ScriptTimelineView.prototype._updateTreeElementWithCloseButton):
1496         (WebInspector.ScriptTimelineView.prototype._closeStatusButtonClicked):
1497         Provide select/deselect handlers to show/hide the close status bar button
1498         when selecting a row that shows a non-Timeline content view. Currently the
1499         only content views the tree elements can show are Resource views, so the
1500         tooltip is the same everywhere.
1501
1502 2014-08-12  Timothy Hatcher  <timothy@apple.com>
1503
1504         Web Inspector: Expect to see top level JavaScript function profiler details for event handlers in timeline
1505         https://bugs.webkit.org/show_bug.cgi?id=132109
1506
1507         Reviewed by Joseph Pecoraro.
1508
1509         * UserInterface/Views/ScriptTimelineView.js:
1510         (WebInspector.ScriptTimelineView.prototype._processPendingRecords): Don't promote root node children if
1511         there is only one child.
1512
1513 2014-08-11  Brian J. Burg  <burg@cs.washington.edu>
1514
1515         Web Inspector: show a replay dashboard when capturing or replaying
1516         https://bugs.webkit.org/show_bug.cgi?id=135170
1517
1518         Reviewed by Timothy Hatcher.
1519
1520         This patch adds a replay dashboard with record/play/pause buttons. It
1521         is shown automatically when the user starts capturing an execution from
1522         the replay menu in the Timelines sidebar panel.
1523
1524         * UserInterface/Base/Main.js:
1525         (WebInspector.loaded):
1526         (WebInspector._captureDidStart):
1527         * UserInterface/Controllers/DashboardManager.js:
1528         (WebInspector.DashboardManager):
1529         * UserInterface/Images/ReplayPauseButton.svg: Added.
1530         * UserInterface/Images/ReplayPlayButton.svg: Added.
1531         * UserInterface/Images/ReplayRecordingButton.svg: Added.
1532         * UserInterface/Main.html:
1533         * UserInterface/Models/ReplayDashboard.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DashboardManager.js.
1534         (WebInspector.ReplayDashboard):
1535         * UserInterface/Views/DashboardView.js:
1536         (WebInspector.DashboardView):
1537         * UserInterface/Views/ReplayDashboardView.css: Copied from Source/WebInspectorUI/UserInterface/Controllers/DashboardManager.js.
1538         (.toolbar .dashboard.replay):
1539         (.toolbar .dashboard.replay div.navigation-bar):
1540         (.toolbar .dashboard.replay .item.button > .glyph):
1541         (.toolbar.label-only .dashboard.replay .item.button > .glyph):
1542         * UserInterface/Views/ReplayDashboardView.js: Added.
1543         (WebInspector.ReplayDashboardView):
1544         (WebInspector.ReplayDashboardView.prototype._captureButtonItemClicked):
1545         (WebInspector.ReplayDashboardView.prototype._replayButtonItemClicked):
1546         (WebInspector.ReplayDashboardView.prototype._captureStarted):
1547         (WebInspector.ReplayDashboardView.prototype._captureStopped):
1548         (WebInspector.ReplayDashboardView.prototype._playbackStarted):
1549         (WebInspector.ReplayDashboardView.prototype._playbackPaused):
1550         (WebInspector.ReplayDashboardView.prototype._playbackFinished):
1551
1552 2014-08-08  Brian J. Burg  <burg@cs.washington.edu>
1553
1554         Web Inspector: DebuggerManager commands should return promises
1555         https://bugs.webkit.org/show_bug.cgi?id=135690
1556
1557         Reviewed by Timothy Hatcher.
1558
1559         Convert the existing debugger commands to return promises. This
1560         requires separately waiting for protocol command's promise to be
1561         fulfilled, as well as waiting for the appropriate DebuggerManager
1562         event. If the protocol command promise is rejected, tear down the
1563         single-fire event listener.
1564
1565         * UserInterface/Controllers/DebuggerManager.js:
1566         (WebInspector.DebuggerManager.prototype.pause):
1567         (WebInspector.DebuggerManager.prototype.resume):
1568         (WebInspector.DebuggerManager.prototype.stepOver):
1569         (WebInspector.DebuggerManager.prototype.stepInto):
1570         (WebInspector.DebuggerManager.prototype.stepOut):
1571         * UserInterface/Controllers/ReplayManager.js: Use the promise-based API.
1572         (WebInspector.ReplayManager.prototype._suppressBreakpointsAndResumeIfNeeded):
1573
1574 2014-08-11  Timothy Hatcher  <timothy@apple.com>
1575
1576         Web Inspector: Update folder icons
1577         https://bugs.webkit.org/show_bug.cgi?id=135808
1578
1579         Reviewed by Joseph Pecoraro.
1580
1581         * UserInterface/Images/FolderGeneric.png: Updated.
1582         * UserInterface/Images/FolderGeneric@2x.png: Updated.
1583
1584 2014-08-11  Timothy Hatcher  <timothy@apple.com>
1585
1586         Web Inspector: DataGrid and its clients are a cluster-cuss of styles
1587         https://bugs.webkit.org/show_bug.cgi?id=135788
1588
1589         Clean up DataGrid and its subclasses and client styles.
1590
1591         Reviewed by Joseph Pecoraro.
1592
1593         * Localizations/en.lproj/localizedStrings.js:
1594         * UserInterface/Views/ApplicationCacheFrameContentView.css:
1595         (.content-view.application-cache-frame > .data-grid):
1596         * UserInterface/Views/CookieStorageContentView.css:
1597         (.content-view.cookie-storage > .data-grid):
1598         * UserInterface/Views/DOMStorageContentView.css:
1599         (.content-view.dom-storage > .data-grid):
1600         * UserInterface/Views/DOMTreeDataGrid.css:
1601         (.dom-tree-data-grid .data-grid):
1602         (.dom-tree-data-grid .name-column .icon):
1603         * UserInterface/Views/DOMTreeDataGrid.js:
1604         (WebInspector.DOMTreeDataGrid):
1605         * UserInterface/Views/DataGrid.css:
1606         (.data-grid):
1607         (.data-grid table):
1608         (.data-grid .data-container):
1609         (.data-grid.inline):
1610         (.data-grid th):
1611         (.data-grid :-webkit-any(th, td):not(:last-child)):
1612         (.data-grid th.sortable:active):
1613         (.data-grid th:-webkit-any(.sort-ascending, .sort-descending)):
1614         (.data-grid table.data):
1615         (.data-grid td):
1616         (.data-grid:focus tr.selected td:not(:last-child)):
1617         (body.mac-platform.legacy .data-grid:focus tr.selected td:not(:last-child)):
1618         (.data-grid :-webkit-any(th, td) > div):
1619         (.data-grid th:-webkit-any(.sort-ascending, .sort-descending) > div:first-child):
1620         (.data-grid th.sort-ascending > div:first-child::after):
1621         (.data-grid th.sort-descending > div:first-child::after):
1622         (.data-grid td .subtitle):
1623         (.data-grid td .subtitle::before):
1624         (.data-grid:focus tr.selected td .subtitle):
1625         (.data-grid td.error):
1626         (.data-grid tr.selected td.error):
1627         (.data-grid td .icon):
1628         (.data-grid td .go-to-arrow):
1629         (.data-grid tr:-webkit-any(.selected, :hover) .go-to-arrow):
1630         * UserInterface/Views/DatabaseContentView.css:
1631         (.storage-view):
1632         * UserInterface/Views/DatabaseTableContentView.css:
1633         (.content-view.database-table > .data-grid):
1634         * UserInterface/Views/DetailsSection.css:
1635         (.details-section > .content .data-grid):
1636         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
1637         (.content-view.indexed-database-object-store > .data-grid):
1638         * UserInterface/Views/LayerTreeDataGridNode.js:
1639         (WebInspector.LayerTreeDataGridNode.prototype._makeNameCell):
1640         (WebInspector.LayerTreeDataGridNode.prototype._updateNameCellData):
1641         * UserInterface/Views/LayerTreeSidebarPanel.css:
1642         (.layer-tree.panel .data-grid):
1643         (.layer-tree.panel .name-column .icon):
1644         (.layer-tree.panel tr.reflection .name-column .icon):
1645         (.layer-tree.panel tr.pseudo-element .name-column .icon):
1646         (.layer-tree.panel .name-column .reflection):
1647         (.layer-tree.panel tr.selected .name-column .reflection):
1648         (.layer-tree.panel .bottom-bar):
1649         (body.mac-platform.legacy .layer-tree.panel .bottom-bar):
1650         (.layer-tree.panel .bottom-bar > div):
1651         (body.mac-platform.legacy .layer-tree.panel .bottom-bar > div):
1652         (body.mac-platform.legacy .layer-tree-popover):
1653         * UserInterface/Views/LayerTreeSidebarPanel.js:
1654         (WebInspector.LayerTreeSidebarPanel):
1655         (WebInspector.LayerTreeSidebarPanel.prototype._buildLayerInfoSection):
1656         (WebInspector.LayerTreeSidebarPanel.prototype._buildDataGridSection):
1657         (WebInspector.LayerTreeSidebarPanel.prototype._buildBottomBar):
1658         (WebInspector.LayerTreeSidebarPanel.prototype._updateMetrics):
1659         * UserInterface/Views/LegacyJavaScriptProfileView.css:
1660         (.content-view.profile-view > .data-grid):
1661         * UserInterface/Views/LegacyProfileView.css:
1662         * UserInterface/Views/LogContentView.css:
1663         (.console-message .bubble):
1664         * UserInterface/Views/NetworkTimelineView.css:
1665         (.timeline-view.network > .data-grid):
1666         * UserInterface/Views/OverviewTimelineView.css:
1667         (.timeline-view.overview > .timeline-ruler > .header):
1668         (.timeline-view.overview > .data-grid):
1669         * UserInterface/Views/OverviewTimelineView.js:
1670         * UserInterface/Views/ProbeDetailsSidebarPanel.css:
1671         (.details-section.probe-set .options > .probe-add):
1672         (.popover .probe-popover):
1673         * UserInterface/Views/ProbeSetDataGrid.css:
1674         (.details-section.probe-set .data-grid tr.past-value td):
1675         (.details-section.probe-set .data-grid > td.unknown-value):
1676         (.details-section.probe-set .data-grid tr.revealed.highlighted):
1677         (.details-section.probe-set .data-grid tr.separator):
1678         (.details-section.probe-set .data-grid > tr.data-updated):
1679         (.details-section.probe-set .data-grid .selected .section *):
1680         (.details-section.probe-set .data-grid .selected td.unknown-value):
1681         (.details-section.probe-set .data-grid .section):
1682         * UserInterface/Views/QuickConsole.css:
1683         (.quick-console):
1684         * UserInterface/Views/TimelineDataGrid.css:
1685         (.data-grid.timeline th):
1686         (.data-grid.timeline > .navigation-bar-container > .navigation-bar):
1687         * UserInterface/Views/TimelineRuler.css:
1688         (.timeline-ruler > .header):
1689         (.timeline-ruler > .header > .divider):
1690
1691 2014-08-11  Brent Fulgham  <bfulgham@apple.com>
1692
1693         [Win] Adjust build script for Windows production build.
1694         https://bugs.webkit.org/show_bug.cgi?id=135806
1695         <rdar://problem/17978299>
1696
1697         Reviewed by Timothy Hatcher.
1698
1699         * WebInspectorUI.vcxproj/WebInspectorUI.make: Make sure target for
1700         xcopy operation exists.
1701         * WebInspectorUI.vcxproj/WebInspectorUI.proj: Don't create directories
1702         we don't need, make sure the target location exists before we build.
1703         * WebInspectorUI.vcxproj/build-webinspectorui.pl: Make sure that
1704         production builds get the intermediary command files from the
1705         right place.
1706
1707 2014-08-11  Brian J. Burg  <burg@cs.washington.edu>
1708
1709         Web Inspector: Add a helper to avoid leaking single-fire event listeners in Promise chains
1710         https://bugs.webkit.org/show_bug.cgi?id=135772
1711
1712         Reviewed by Timothy Hatcher.
1713
1714         A common pattern when working with promise chains is to convert an event
1715         handler into a promise by using a single-fire event listener with the
1716         resolve continuation as the callback. This is fine if the event fires;
1717         if it doesn't fire, then the event emitter permanently keeps a reference to the
1718         this-object and the callback.
1719
1720         This patch adds EventListener, a proxy object for events that can be manipulated
1721         from multiple promise callback functions. If a promise is rejected, the catch
1722         block can disconnect any event listeners set up earlier in the promise chain.
1723
1724         This patch also reimplements EventListenerSet to use multiple EventListeners,
1725         since they share the same logic to uniformly handle Inspector and DOM events.
1726
1727         Test: inspector/event-listener.html
1728         Test: inspector/event-listener-set.html
1729
1730         * UserInterface/Base/EventListener.js: Added.
1731         (WebInspector.EventListener):
1732         (WebInspector.EventListener.prototype.this._callback):
1733         (WebInspector.EventListener.prototype.connect):
1734         (WebInspector.EventListener.prototype.disconnect):
1735         * UserInterface/Base/EventListenerSet.js: Update license block.
1736         (WebInspector.EventListenerSet.prototype.register):
1737         (WebInspector.EventListenerSet.prototype.install):
1738         (WebInspector.EventListenerSet.prototype.uninstall):
1739         * UserInterface/Main.html: Include EventListener.
1740         * UserInterface/Test.html: Include EventListener and EventListenerSet.
1741
1742 2014-08-10  Timothy Hatcher  <timothy@apple.com>
1743
1744         Web Inspector: new glyphs are visible on OS X 10.9 builds
1745         https://bugs.webkit.org/show_bug.cgi?id=135743
1746
1747         Reviewed by Joseph Pecoraro.
1748
1749         * UserInterface/Images/Legacy/UserInputPrompt.svg: Removed.
1750         * UserInterface/Images/Legacy/UserInputPromptPrevious.svg: Removed.
1751         * UserInterface/Images/Legacy/UserInputResult.svg: Removed.
1752         Removed images that were not used.
1753
1754         * UserInterface/Views/DashboardContainerView.css:
1755         (body.mac-platform.legacy .dashboard-container .advance-arrow):
1756         * UserInterface/Views/DebuggerDashboardView.js:
1757         (WebInspector.DebuggerDashboardView):
1758         * UserInterface/Views/FolderIcon.css:
1759         (body.mac-platform.legacy .folder-icon .icon):
1760         * UserInterface/Views/HierarchicalPathComponent.css:
1761         (body.mac-platform.legacy .hierarchical-path-component > .selector-arrows):
1762         * UserInterface/Views/LogContentView.js:
1763         (WebInspector.LogContentView):
1764         Use legacy images.
1765
1766         * UserInterface/Views/NavigationSidebarPanel.css:
1767         (.navigation-sidebar-panel-content-tree-outline:focus .item.selected .subtitle):
1768         Fix color for selected subtitle.
1769
1770         * UserInterface/Views/TimelineSidebarPanel.js:
1771         (WebInspector.TimelineSidebarPanel):
1772         Use legacy images.
1773
1774 2014-08-09  Brian J. Burg  <burg@cs.washington.edu>
1775
1776         Web Inspector: TimelineManager should reuse empty recordings
1777         https://bugs.webkit.org/show_bug.cgi?id=135749
1778
1779         Reviewed by Timothy Hatcher.
1780
1781         Check whether the recording is empty before creating a new one.
1782
1783         * UserInterface/Controllers/TimelineManager.js:
1784         (WebInspector.TimelineManager.prototype._loadNewRecording):
1785         * UserInterface/Models/TimelineRecording.js:
1786         (WebInspector.TimelineRecording.prototype.isEmpty):
1787         (WebInspector.TimelineRecording.prototype.unloaded):
1788
1789 2014-08-08  Brian J. Burg  <burg@cs.washington.edu>
1790
1791         Web Inspector: add debugging flag to InspectorTest for unbuffered logging to stderr
1792         https://bugs.webkit.org/show_bug.cgi?id=135726
1793
1794         Reviewed by Timothy Hatcher.
1795
1796         Added a flag for debugging inspector tests which will synchronously log messages.
1797         This avoids failure modes that prevent logging from being added to the test page.
1798
1799         * UserInterface/Base/Test.js:
1800         (InspectorTest.debugLog):
1801         (InspectorTest.addResult):
1802
1803 2014-08-08  Joseph Pecoraro  <pecoraro@apple.com>
1804
1805         Web Inspector: When Switching Recordings, the UI datagrids do not update to match selection
1806         https://bugs.webkit.org/show_bug.cgi?id=135764
1807
1808         Reviewed by Timothy Hatcher.
1809
1810         * UserInterface/Views/TimelineSidebarPanel.js:
1811         When changing the activeContentView trigger an update of the datagrids by
1812         re-applying the filter, which will be different now that the view is different.
1813
1814 2014-08-08  Joseph Pecoraro  <pecoraro@apple.com>
1815
1816         Web Inspector: Uncaught Exception opening Web Inspector - TypeError: undefined is not a function - candidateObjectCookie.every
1817         https://bugs.webkit.org/show_bug.cgi?id=135762
1818
1819         Reviewed by Timothy Hatcher.
1820
1821         * UserInterface/Views/NavigationSidebarPanel.js:
1822         (WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
1823         Fix a typo, the wrong object was being used.
1824
1825 2014-08-07  Brian J. Burg  <burg@cs.washington.edu>
1826
1827         REGRESSION(r172094): timeline views are blank after reloading in some situations
1828         https://bugs.webkit.org/show_bug.cgi?id=135742
1829
1830         Reviewed by Timothy Hatcher.
1831
1832         Address various bugs that cause the wrong timeline content views to appear when
1833         starting a recording by reloading the inspected page. Fix other small oversights
1834         that were encountered in the sidebar-based view state restoration code.
1835
1836         * UserInterface/Models/TimelineRecording.js:
1837         (WebInspector.TimelineRecording.prototype.saveIdentityToCookie): Add a dummy implementation.
1838
1839         * UserInterface/Views/NavigationSidebarPanel.js:
1840         (WebInspector.NavigationSidebarPanel.prototype.treeElementMatchesCookie):
1841         This code erroneously matches any tree element whose represented object's
1842         saveIdentityToCookie function produces an empty cookie.
1843
1844         * UserInterface/Views/TimelineContentView.js:
1845         (WebInspector.TimelineContentView.prototype._showTimelineView): Add an assertion
1846         that will find mismatches between represented objects of the TimelineContentView
1847         and TimelineViews.
1848
1849         * UserInterface/Views/TimelineSidebarPanel.js:
1850         (WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie): Don't call
1851         the superclass's implementation, since we do not want to perform a relaxed match
1852         against any of our tree elements. The only thing that can be restored across reopen
1853         is a selected timeline tree element, which is already handled by this override.
1854
1855 2014-08-07  Joseph Pecoraro  <pecoraro@apple.com>
1856
1857         Web Inspector: Fix accidental always true comparison
1858         https://bugs.webkit.org/show_bug.cgi?id=135741
1859
1860         Reviewed by Timothy Hatcher.
1861
1862         Remove accidental "!" that would always cause this comparison to succeed.
1863
1864         * UserInterface/Views/OverviewTimelineView.js:
1865         (WebInspector.OverviewTimelineView.prototype.updateLayout):
1866
1867 2014-08-07  Joseph Pecoraro  <pecoraro@apple.com>
1868
1869         Web Inspector: Timeline Filter Bars are not appearing at all
1870         https://bugs.webkit.org/show_bug.cgi?id=135740
1871
1872         Reviewed by Timothy Hatcher.
1873
1874         * UserInterface/Views/TimelineDataGrid.css:
1875         (.data-grid.timeline.has-non-default-filter > .navigation-bar-container):
1876         (.data-grid.timeline > .navigation-bar-container > .navigation-bar):
1877         (body.mac-platform.legacy .data-grid.timeline > .navigation-bar-container > .navigation-bar):
1878         Update the positioning and height for non-legacy because the console is now taller.
1879
1880         * UserInterface/Views/ScopeBar.js:
1881         (WebInspector.ScopeBar.prototype.hasNonDefaultItemSelected):
1882         Helper to know if there is a non-default filter.
1883
1884         * UserInterface/Views/TimelineDataGrid.js:
1885         (WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):
1886         (WebInspector.TimelineDataGrid.prototype._scopeBarSelectedItemsDidChange):
1887         Update scope bar visibility. If non-default we want to always show it.
1888         
1889         (WebInspector.TimelineDataGrid.prototype._updateScopeBarForcedVisibility):
1890         If there is a non-default filter, force showing the bar.
1891
1892 2014-08-07  Joseph Pecoraro  <pecoraro@apple.com>
1893
1894         Web Inspector: breakpoints enabled state is not persisted across re-opening the inspector
1895         https://bugs.webkit.org/show_bug.cgi?id=135745
1896
1897         Reviewed by Timothy Hatcher.
1898
1899         When restoring breakpoints when the inspector is initializing, do not
1900         let setting these breakpoints automatically enable breakpoints. We should
1901         respect the setting in this case.
1902
1903         * UserInterface/Controllers/DebuggerManager.js:
1904         (WebInspector.DebuggerManager.restoreBreakpointsSoon):
1905         (WebInspector.DebuggerManager):
1906
1907 2014-08-07  Timothy Hatcher  <timothy@apple.com>
1908
1909         Web Inspector: Combine and minify Esprima
1910         https://bugs.webkit.org/show_bug.cgi?id=135728
1911
1912         Reviewed by Joseph Pecoraro.
1913
1914         * Scripts/combine-resources.pl:
1915         * Scripts/copy-user-interface-resources.pl:
1916         * UserInterface/External/Esprima/LICENSE: Added.
1917
1918 2014-08-07  Timothy Hatcher  <timothy@apple.com>
1919
1920         Fix regression where tree outline keyboard navigation is broken.
1921
1922         https://bugs.webkit.org/show_bug.cgi?id=135718
1923
1924         Reviewed by Joseph Pecoraro.
1925
1926         * UserInterface/Views/TreeOutline.js:
1927         (TreeElement.prototype.revealed): Fix the check for currentAncestor.hidden.
1928
1929 2014-08-07  Timothy Hatcher  <timothy@apple.com>
1930
1931         Web Inspector: Filter bar text and icon are positioned too low and tight
1932         https://bugs.webkit.org/show_bug.cgi?id=135723
1933
1934         Reviewed by Joseph Pecoraro.
1935
1936         * UserInterface/Views/FilterBar.css:
1937         (.filter-bar > input[type="search"]):
1938         (.filter-bar > input[type="search"]::-webkit-search-decoration):
1939         * UserInterface/Views/SearchBar.css:
1940         (.search-bar > input[type="search"]):
1941
1942 2014-08-07  Timothy Hatcher  <timothy@apple.com>
1943
1944         Web Inspector: Dashboard error and warning icons should be filled when enabled
1945         https://bugs.webkit.org/show_bug.cgi?id=135725
1946
1947         Reviewed by Joseph Pecoraro.
1948
1949         * UserInterface/Images/ErrorsEnabled.svg:
1950         * UserInterface/Images/IssuesEnabled.svg:
1951
1952 2014-08-07  Joseph Pecoraro  <pecoraro@apple.com>
1953
1954         Web Inspector: Dashboard contents shift when window changes active state
1955         https://bugs.webkit.org/show_bug.cgi?id=135724
1956
1957         Reviewed by Timothy Hatcher.
1958
1959         The container was getting a 1px border when inactive and none when active.
1960         Give it a transparent border when active so contents don't change size.
1961
1962         * UserInterface/Views/DashboardContainerView.css:
1963         (.toolbar .dashboard-container):
1964
1965 2014-08-07  Timothy Hatcher  <timothy@apple.com>
1966
1967         Fix reference to missing CloseTimeline.svg image.
1968
1969         Rubber-stamped by Joseph Pecoraro.
1970
1971         * UserInterface/Views/TimelineSidebarPanel.js:
1972         (WebInspector.TimelineSidebarPanel.createTimelineTreeElement): Use CloseLarge.svg instead.
1973
1974 2014-08-07  Brent Fulgham  <bfulgham@apple.com>
1975
1976         [Win] Unreviewed build fix.
1977
1978         Add a WebInspectorUI.proj file for use with MSBuild utility.
1979
1980         * WebInspectorUI.vcxproj/WebInspectorUI.proj: Added.
1981
1982 2014-08-07  Benjamin Poulain  <bpoulain@apple.com>
1983
1984         Get rid of INPUT_SPEECH
1985         https://bugs.webkit.org/show_bug.cgi?id=135672
1986
1987         Reviewed by Andreas Kling.
1988
1989         * UserInterface/Models/CSSKeywordCompletions.js:
1990
1991 2014-08-07  Joseph Pecoraro  <pecoraro@apple.com>
1992
1993         Web Inspector: Dragging selection window when mouse goes out of window bounds does not behave as expected
1994         https://bugs.webkit.org/show_bug.cgi?id=135372
1995
1996         Reviewed by Timothy Hatcher.
1997
1998         Constrain move selection window dragging to the ruler bounds
1999         based on the mouse down position on the drag window.
2000
2001         * UserInterface/Views/TimelineRuler.js:
2002         (WebInspector.TimelineRuler.prototype._handleMouseDown):
2003         (WebInspector.TimelineRuler.prototype._handleMouseMove):
2004         (WebInspector.TimelineRuler.prototype._handleMouseUp):
2005
2006 2014-08-07  Timothy Hatcher  <timothy@apple.com>
2007
2008         Web Inspector: Update glyphs to be more like Xcode 6
2009         https://bugs.webkit.org/show_bug.cgi?id=135705
2010
2011         Reviewed by Joseph Pecoraro.
2012
2013         * Localizations/en.lproj/localizedStrings.js: Updated.
2014
2015         * UserInterface/Base/ImageUtilities.js:
2016         (platformImagePath): Added.
2017         (generateEmbossedImages.generateImage):
2018         Bump the base image version. Helper function. Use isLegacyMacOS.
2019
2020         * UserInterface/Base/Main.js:
2021         (WebInspector.contentLoaded):
2022         (WebInspector._updateDockNavigationItems):
2023         (WebInspector._generateDisclosureTriangleImages):
2024         Use new images and add legacy path. Remove the shadow.
2025
2026         * UserInterface/Images: Updated images.
2027         * UserInterface/Images/Legacy: Added. Moved legacy images here.
2028
2029         * UserInterface/Views/CSSStyleDeclarationSection.css:
2030         (.style-declaration-section):
2031         (body.mac-platform.legacy .style-declaration-section + .style-declaration-section):
2032         (.style-declaration-section.last-in-group):
2033         (.style-declaration-section.last-in-group + .style-declaration-section):
2034         Use a consistent gray for borders.
2035
2036         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
2037         (.sidebar > .panel.details.css-style > .content > .pseudo-classes):
2038         Use a consistent gray for borders.
2039
2040         * UserInterface/Views/ContentBrowser.js:
2041         (WebInspector.ContentBrowser):
2042         Use new images and add legacy path.
2043
2044         * UserInterface/Views/ControlToolbarItem.css:
2045         (.toolbar .item.control):
2046         (body.mac-platform.legacy .toolbar .item.control):
2047         (.toolbar .item.control:hover):
2048         (body.mac-platform.legacy .toolbar .item.control:hover):
2049         Adjust the opacity for controls.
2050
2051         * UserInterface/Views/DOMTreeContentView.js:
2052         (WebInspector.DOMTreeContentView):
2053         Use new images and add legacy path.
2054
2055         * UserInterface/Views/DataGrid.css:
2056         (.data-grid tr.selected):
2057         Use a consistent gray for borders.
2058
2059         * UserInterface/Views/DataGrid.js:
2060         (WebInspector.DataGrid.prototype.get _generateSortIndicatorImagesIfNeeded):
2061         Use new images and add legacy path. Remove the shadow.
2062
2063         * UserInterface/Views/DebuggerSidebarPanel.js:
2064         (WebInspector.DebuggerSidebarPanel):
2065         Use new images and add legacy path.
2066
2067         * UserInterface/Views/DefaultDashboardView.css:
2068         (.toolbar .dashboard.default > .item):
2069         (body.mac-platform.legacy .toolbar .dashboard.default > .item):
2070         (body.mac-platform.legacy .toolbar .dashboard.default > .resourcesCount > img):
2071         (body.mac-platform.legacy .toolbar .dashboard.default > .time > img):
2072         (body.mac-platform.legacy .toolbar .dashboard.default > .logs > img):
2073         (body.mac-platform.legacy .toolbar .dashboard.default > .resourcesSize > img):
2074         (body.mac-platform.legacy .toolbar .dashboard.default > .errors > img):
2075         (body.mac-platform.legacy .toolbar .dashboard.default > .errors.enabled > img):
2076         (body.mac-platform.legacy .toolbar .dashboard.default > .issues > img):
2077         (body.mac-platform.legacy .toolbar .dashboard.default > .issues.enabled > img):
2078         Use new images and add legacy path.
2079
2080         * UserInterface/Views/DetailsSection.css:
2081         (.details-section):
2082         (.details-section .details-section:first-child):
2083         (body.mac-platform.legacy .details-section > .header):
2084         (.details-section > .content > .group):
2085         (.details-section > .content > .group:nth-child(even) > .row.simple:first-child > *):
2086         (body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > *):
2087         Use a consistent gray for borders.
2088
2089         * UserInterface/Views/FilterBar.css:
2090         (body.mac-platform.legacy .filter-bar > input[type="search"]::-webkit-search-decoration):
2091         Use new images and add legacy path.
2092
2093         * UserInterface/Views/FindBanner.css:
2094         (.find-banner):
2095         Use a consistent gray for borders.
2096
2097         * UserInterface/Views/FindBanner.js:
2098         (WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
2099         Add legacy path.
2100
2101         * UserInterface/Views/FrameTreeElement.js:
2102         (WebInspector.FrameTreeElement.prototype.updateStatusForMainFrame):
2103         Use new images and add legacy path.
2104
2105         * UserInterface/Views/LogContentView.js:
2106         (WebInspector.LogContentView):
2107         Use new images and add legacy path.
2108
2109         * UserInterface/Views/Main.css:
2110         (#split-content-browser):
2111         Use a consistent gray for borders.
2112
2113         * UserInterface/Views/NavigationSidebarPanel.css:
2114         (.sidebar > .panel.navigation > .overflow-shadow):
2115         (body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow):
2116         (.sidebar > .panel.navigation > .overflow-shadow.top):
2117         (body.mac-platform.legacy .sidebar > .panel.navigation > .overflow-shadow.top):
2118         (.sidebar > .panel.navigation > .empty-content-placeholder):
2119         (body.mac-platform.legacy .sidebar > .panel.navigation > .empty-content-placeholder):
2120         (.navigation-sidebar-panel-content-tree-outline:focus .item.selected .disclosure-button):
2121         (.navigation-sidebar-panel-content-tree-outline:focus .item.selected.expanded .disclosure-button):
2122         (.navigation-sidebar-panel-content-tree-outline .item.selected):
2123         (.navigation-sidebar-panel-content-tree-outline:focus .item.selected):
2124         Adjust the styles to make the selected item use white text and icons only when focused.
2125
2126         * UserInterface/Views/NavigationSidebarPanel.js:
2127         (WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
2128         (WebInspector.NavigationSidebarPanel.prototype._generateDisclosureTrianglesIfNeeded):
2129         Remove the shadow from the disclosure triangles. Make the overflow shadow not fade.
2130
2131         * UserInterface/Views/ProbeDetailsSidebarPanel.css:
2132         (.details-section.probe-set .options > .probe-clear-samples):
2133         (.details-section.probe-set .options > .probe-remove):
2134         (.details-section.probe-set .options > .probe-add):
2135         (body.mac-platform.legacy .details-section.probe-set .options > .probe-clear-samples):
2136         (body.mac-platform.legacy .details-section.probe-set .options > .probe-remove):
2137         (body.mac-platform.legacy .details-section.probe-set .options > .probe-add):
2138         Tweak size and position of icons and use legacy paths.
2139
2140         * UserInterface/Views/QuickConsole.css:
2141         (.quick-console):
2142         Adjust padding to match filter bar height.
2143
2144         * UserInterface/Views/ResourceSidebarPanel.css:
2145         (.sidebar > .panel.navigation.resource > .search-bar):
2146         Adjust height.
2147
2148         * UserInterface/Views/RulesStyleDetailsPanel.css:
2149         (.sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
2150         (.sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):
2151         (body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule img):
2152         Use a consistent gray for borders. Don't bold the New Rule label.
2153
2154         * UserInterface/Views/ScriptContentView.js:
2155         (WebInspector.ScriptContentView):
2156         Use new images and add legacy path.
2157
2158         * UserInterface/Views/Sidebar.css:
2159         (.sidebar.left):
2160         (.sidebar.right):
2161         Use a consistent gray for borders.
2162
2163         * UserInterface/Views/TextContentView.js:
2164         (WebInspector.TextContentView):
2165         Use new images and add legacy path.
2166
2167         * UserInterface/Views/TextResourceContentView.js:
2168         (WebInspector.TextResourceContentView):
2169         Use new images and add legacy path.
2170
2171         * UserInterface/Views/TimelineContentView.js:
2172         (WebInspector.TimelineContentView):
2173         Use new images and add legacy path.
2174
2175         * UserInterface/Views/TimelineDataGrid.css:
2176         (.data-grid.timeline th):
2177         (.data-grid.timeline th.sortable:active):
2178         (.data-grid.timeline th.sort-descending):
2179         Fix a regression with the gradient background showing in legacy mode.
2180
2181         * UserInterface/Views/TimelineIcons.css:
2182         (body.mac-platform.legacy .network-icon .icon):
2183         (body.mac-platform.legacy .network-icon.large .icon):
2184         (body.mac-platform.legacy .colors-icon .icon):
2185         (body.mac-platform.legacy .colors-icon.large .icon):
2186         Added legacy versions of these icons.
2187
2188         * UserInterface/Views/TimelineSidebarPanel.css:
2189         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
2190         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
2191         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:active):
2192         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording):
2193         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
2194         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording):
2195         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
2196         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording:hover):
2197         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.forced):
2198         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording.forced):
2199         (.sidebar > .panel.navigation.timeline > .timelines-content .close-button):
2200         (.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
2201         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
2202         Update the styles for the recording button and close button.
2203
2204         * UserInterface/Views/TimelineSidebarPanel.js:
2205         (WebInspector.TimelineSidebarPanel.createTimelineTreeElement):
2206         Use TreeElementStatusButton instead of a styled image.
2207
2208         * UserInterface/Views/TreeElementStatusButton.css:
2209         (.item > .status > .status-button > svg path.filled):
2210         (body.mac-platform.legacy .item > .status > .status-button > svg path.filled):
2211         (:focus .item.selected > .status > .status-button > svg path.filled):
2212         (.item > .status > .status-button > svg path.stroked):
2213         (body.mac-platform.legacy .item > .status > .status-button > svg path.stroked):
2214         (:focus .item.selected > .status > .status-button > svg path.stroked):
2215         (.item.selected > .status > .status-button:active):
2216         (.item > .status > .status-button.disabled):
2217         Updated selectors and styles to work with stroke or fill.
2218
2219 2014-08-07  Brian J. Burg  <burg@cs.washington.edu>
2220
2221         Web Inspector: DebuggerManager sends spurious setBreakpointsActive commands when setting a breakpoint
2222         https://bugs.webkit.org/show_bug.cgi?id=135674
2223
2224         Reviewed by David Kilzer.
2225
2226         * UserInterface/Controllers/DebuggerManager.js:
2227         (WebInspector.DebuggerManager.prototype.set breakpointsEnabled): Fix a typo.
2228
2229 2014-08-06  Brian J. Burg  <burg@cs.washington.edu>
2230
2231         Web Inspector: breakpoint resolved state should not depend on all breakpoints being enabled
2232         https://bugs.webkit.org/show_bug.cgi?id=135517
2233
2234         Reviewed by Joseph Pecoraro.
2235
2236         Previously, Breakpoint.resolved returned false if all breakpoints were disabled, even if
2237         the breakpoint had an associated SourceCode. This was a weird hack to make it easier to
2238         style breakpoint widgets. This made it hard for other code to deal with resolved
2239         breakpoints that were also disabled, or SourceCodeLocations that resolve and unresolve.
2240         This patch removes that consideration and fixes style update code to manually check if all
2241         breakpoints are being suppressed.
2242
2243         The code now enforces that a Breakpoint must have a SourceCode before it can be resolved.
2244         (As a performance optimization when loading the initial frame tree, we sometimes we give
2245         Breakpoints a SourceCode before the debugger officially says that the breakpoint has been
2246         resolved. Thus, it's possible to be unresolved with a SourceCode, but not vice-versa.)
2247
2248         This patch also adds a few guards where we assumed a SourceCodeLocation had a SourceCode.
2249
2250         * UserInterface/Controllers/DebuggerManager.js:
2251         (WebInspector.DebuggerManager.prototype.set breakpointsEnabled): Remove spurious
2252         ResolvedStateDidChange events.
2253
2254         (WebInspector.DebuggerManager.prototype.breakpointResolved): Set the breakpoint's SourceCode
2255         if it has not been set already by DebuggerManager.associateBreakpointsWithSourceCode.
2256
2257         * UserInterface/Models/Breakpoint.js:
2258         (WebInspector.Breakpoint.prototype.get resolved):
2259         (WebInspector.Breakpoint.prototype.set resolved.isSpecialBreakpoint):
2260         (WebInspector.Breakpoint.prototype.set resolved): Add an assertion.
2261         * UserInterface/Models/SourceCodeLocation.js: Add guards for !SourceCode.
2262         (WebInspector.SourceCodeLocation.prototype.populateLiveDisplayLocationTooltip):
2263         * UserInterface/Views/BreakpointTreeElement.js: Account for DebuggerManager.breakpointsEnabled.
2264         (WebInspector.BreakpointTreeElement):
2265         (WebInspector.BreakpointTreeElement.prototype._updateStatus):
2266         * UserInterface/Views/ProbeSetDetailsSection.js:
2267         (WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement): Loosen the assertion.
2268         * UserInterface/Views/SourceCodeTextEditor.js: Account for DebuggerManager.breakpointsEnabled.
2269         (WebInspector.SourceCodeTextEditor):
2270         (WebInspector.SourceCodeTextEditor.prototype.close):
2271         (WebInspector.SourceCodeTextEditor.prototype._breakpointStatusDidChange):
2272         (WebInspector.SourceCodeTextEditor.prototype._breakpointsEnabledDidChange):
2273         (WebInspector.SourceCodeTextEditor.prototype._updateBreakpointStatus):
2274         * UserInterface/Views/TextEditor.js: Account for DebuggerManager.breakpointsEnabled.
2275
2276 2014-08-06  Brian J. Burg  <burg@cs.washington.edu>
2277
2278         Web Inspector: ReplayManager should unpause and suppress breakpoints before capturing/replaying
2279         https://bugs.webkit.org/show_bug.cgi?id=135608
2280
2281         Reviewed by Timothy Hatcher.
2282
2283         It is jarring when the debugger pauses during capturing or replaying. For now, we should suppress
2284         all breakpoints during capturing or replaying, and restore breakpoint enabled state when
2285         capturing finishes, when replaying finishes, or during temporary replay pauses.
2286
2287         In the future, the debugger will be selectively enabled during playback to seek to specific
2288         breakpoint hits. This is tracked in https://bugs.webkit.org/show_bug.cgi?id=135663.
2289
2290         * UserInterface/Controllers/ReplayManager.js:
2291         (WebInspector.ReplayManager.prototype.startCapturing.result):
2292         (WebInspector.ReplayManager.prototype.replayToPosition.result):
2293         (WebInspector.ReplayManager.prototype.replayToCompletion.result):
2294         (WebInspector.ReplayManager.prototype.captureStopped):
2295         (WebInspector.ReplayManager.prototype.playbackPaused):
2296         (WebInspector.ReplayManager.prototype.playbackFinished):
2297         (WebInspector.ReplayManager.prototype._changeSegmentState):
2298         (WebInspector.ReplayManager.prototype._suppressBreakpointsAndResumeIfNeeded):
2299
2300 2014-08-06  Brent Fulgham  <bfulgham@apple.com>
2301
2302         [Win] Build fix.
2303
2304         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: DebugSuffix target was missing
2305         proper path settings for final output.
2306
2307 2014-08-06  Wenson Hsieh  <wenson_hsieh@apple.com>
2308
2309         Implement parsing for CSS scroll snap points
2310         https://bugs.webkit.org/show_bug.cgi?id=134301
2311
2312         Reviewed by Dean Jackson.
2313
2314         * UserInterface/Models/CSSKeywordCompletions.js: Added snap point property keywords, such as mandatory, proximity, elements, and repeat.
2315
2316 2014-08-06  Brian J. Burg  <burg@cs.washington.edu>
2317
2318         REGRESSION(r172094): tests fail because Inspector test harness does not include UIString
2319         https://bugs.webkit.org/show_bug.cgi?id=135658
2320
2321         Reviewed by Joseph Pecoraro.
2322
2323         * UserInterface/Base/Test.js:
2324         (WebInspector.contentLoaded): Fix brace placement.
2325         (WebInspector.UIString): Added. This is the identity function during testing.
2326
2327 2014-08-06  Brian J. Burg  <burg@cs.washington.edu>
2328
2329         Web Inspector: convert ReplayManager to a promise-based API
2330         https://bugs.webkit.org/show_bug.cgi?id=135249
2331
2332         Reviewed by Timothy Hatcher.
2333
2334         Convert replay commands to an asynchronous, promise-based API. This addresses
2335         two problems with a synchronous replay API: clients can only use the synchronous
2336         API if session and segment state are exactly correct, and trying to change state
2337         to match this requirement requires chaining multiple commands and events.
2338
2339         The asynchronous API allows clients to issue replay commands with impunity,
2340         as long as they can be unambiguously handled. For example, issuing
2341         pausePlayback() while capturing is not allowed, but issuing startCapturing()
2342         while replaying is allowed. The API also hides implementation details that
2343         are not important, such as steps to unpause or temporarily disable the debugger.
2344
2345         This patch also cleans up uses of promises, such as adding error re-throwing.
2346         It adds return type annotations to public ReplayManager asynchronous methods.
2347
2348         * UserInterface/Controllers/ReplayManager.js:
2349         (WebInspector.ReplayManager.catch):
2350         (WebInspector.ReplayManager):
2351         (WebInspector.ReplayManager.prototype.createSession):
2352         (WebInspector.ReplayManager.prototype.switchSession):
2353         (WebInspector.ReplayManager.prototype.startCapturing):
2354         (WebInspector.ReplayManager.prototype.stopCapturing):
2355         (WebInspector.ReplayManager.prototype.replayToPosition):
2356         (WebInspector.ReplayManager.prototype.replayToCompletion):
2357         (WebInspector.ReplayManager.prototype.sessionCreated.catch): re-throw.
2358         (WebInspector.ReplayManager.prototype.segmentCompleted.catch): re-throw.
2359         (WebInspector.ReplayManager.prototype.segmentCompleted.catch): re-throw.
2360         (WebInspector.ReplayManager.prototype.segmentUnloaded.catch): re-throw.
2361         (WebInspector.ReplayManager.prototype.sessionCreated.catech): re-throw.
2362
2363 2014-08-06  Brian J. Burg  <burg@cs.washington.edu>
2364
2365         Web Inspector: protocol command invocations should return a promise if no callback is supplied
2366         https://bugs.webkit.org/show_bug.cgi?id=130702
2367
2368         Reviewed by Timothy Hatcher.
2369
2370         This allows the trailing Agent.command.promise(args) to be dropped in favor of just
2371         Agent.command(args). It should make it a bit easier to convert code to use promises.
2372
2373         Test: LayoutTests/inspector/protocol-promise-result.html
2374
2375         * UserInterface/Controllers/ReplayManager.js: Drop use of .promise().
2376         * UserInterface/Controllers/TimelineManager.js: Drop use of .promise().
2377         (WebInspector.TimelineManager.prototype.startCapturing):
2378         * UserInterface/Protocol/InspectorBackend.js:
2379         (.callable): Redirect to the promise entry point if the last argument isn't a function.
2380         (InspectorBackend.Command.create):
2381
2382 2014-08-05  James Craig  <jcraig@apple.com>
2383
2384         Web Inspector: AXI: Add label string once AccessibilityObject::computedLabel() is available
2385         https://bugs.webkit.org/show_bug.cgi?id=129940
2386
2387         Reviewed by Chris Fleizach.
2388
2389         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: UI update for label field in Node Inspector.
2390         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
2391
2392 2014-08-05  Brian J. Burg  <burg@cs.washington.edu>
2393
2394         Web Inspector: support storing multiple timeline recordings in the manager
2395         https://bugs.webkit.org/show_bug.cgi?id=132875
2396
2397         Reviewed by Timothy Hatcher.
2398
2399         This patch adds support for capturing multiple timeline recordings and switching
2400         between them in the user interface using hierarchical path components.
2401
2402         * Localizations/en.lproj/localizedStrings.js:
2403         * UserInterface/Base/Main.js:
2404         (WebInspector.contentLoaded): Remove hard-coded priming of the timeline sidebar panel.
2405         Instead, load the first recording in the timeline manager after the initial load.
2406
2407         (WebInspector._revealAndSelectRepresentedObjectInNavigationSidebar): Don't suppress
2408         onselect events when selecting the tree element for a newly shown content view. This
2409         allows the sidebar to sync the current content view and timeline tree element selection
2410         with what is displayed in the content browser.
2411
2412         * UserInterface/Controllers/TimelineManager.js: Add two new events, RecordingCreated and
2413         RecordingLoaded. A recording is considered active when any new records recieved will be
2414         appended to that recording. The user interface is not necessarily viewing the active
2415         recording.
2416
2417         (WebInspector.TimelineManager.delayedWork):
2418         (WebInspector.TimelineManager): Keep a list of recordings, and load the first recording
2419         asynchronously so that everyone can add an event listener for it.
2420
2421         (WebInspector.TimelineManager.prototype.get activeRecording):
2422         (WebInspector.TimelineManager.prototype.get recordings):
2423         (WebInspector.TimelineManager.prototype.startCapturing):
2424         (WebInspector.TimelineManager.prototype.stopCapturing): Use promises to make the iOS 7
2425         fallback path better match the async semantics of the non-fallback path.
2426
2427         (WebInspector.TimelineManager.prototype.unloadRecording):
2428         (WebInspector.TimelineManager.prototype._loadNewRecording): Stop capturing and unload
2429         any existing recording before creating and loading a new recording.
2430
2431         (WebInspector.TimelineManager.prototype._startAutoCapturing): Create a new recording
2432         rather than resetting the current recording.
2433
2434         * UserInterface/Models/NetworkTimeline.js:
2435         (WebInspector.NetworkTimeline):
2436         * UserInterface/Models/Timeline.js:
2437         (WebInspector.Timeline):
2438         (WebInspector.Timeline.prototype.get type): Each timeline stores its TimelineRecord.Type
2439         so that other code can create type-specific views using the Timeline as a representedObject.
2440
2441         * UserInterface/Models/TimelineRecording.js: For each recording, add new state for a unique identifier,
2442         display string, and an isWritable flag. Once a recording is unloaded, it becomes read-only.
2443         (WebInspector.TimelineRecording.prototype.get displayName):
2444         (WebInspector.TimelineRecording.prototype.get identifier):
2445         (WebInspector.TimelineRecording.prototype.isWritable):
2446         (WebInspector.TimelineRecording.prototype.unloaded):
2447         (WebInspector.TimelineRecording.prototype.reset): A recording can only be reset if it is writable.
2448
2449         * UserInterface/Protocol/InspectorFrontendAPI.js:
2450         (InspectorFrontendAPI.setTimelineProfilingEnabled): Don't make redundant start/stop capturing calls.
2451
2452         * UserInterface/Views/LayoutTimelineOverviewGraph.js: Use a timeline as the representedObject for all
2453         timeline-specific graphs and views. Otherwise, use the recording.
2454         (WebInspector.LayoutTimelineOverviewGraph):
2455         * UserInterface/Views/LayoutTimelineView.js:
2456         (WebInspector.LayoutTimelineView):
2457         (WebInspector.LayoutTimelineView.prototype._treeElementSelected):
2458         * UserInterface/Views/NetworkTimelineOverviewGraph.js:
2459         (WebInspector.NetworkTimelineOverviewGraph):
2460         * UserInterface/Views/NetworkTimelineView.js:
2461         (WebInspector.NetworkTimelineView):
2462         * UserInterface/Views/OverviewTimelineView.js:
2463         (WebInspector.OverviewTimelineView.prototype._networkTimelineRecordAdded):
2464         * UserInterface/Views/ScriptTimelineOverviewGraph.js:
2465         (WebInspector.ScriptTimelineOverviewGraph):
2466         * UserInterface/Views/ScriptTimelineView.js:
2467         (WebInspector.ScriptTimelineView):
2468         (WebInspector.ScriptTimelineView.prototype._treeElementSelected):
2469
2470         * UserInterface/Views/TimelineContentView.js: Iterate over timeline objects when setting up maps. Use timelines
2471         as keys rather than their type identifiers.
2472         (WebInspector.TimelineContentView.prototype.showTimelineViewForTimeline): Renamed from showTimelineView. This
2473         function takes a Timeline instance rather than an identifier, since the conten view is specific to one recording.
2474         (WebInspector.TimelineContentView.prototype.get selectionPathComponents): Match types against the currently
2475         visible timeline's representedObject.
2476         (WebInspector.TimelineContentView.prototype.get currentTimelineView): Used by the sidebar panel to sync timeline
2477         tree element selections to TimelineView shown by the TimelineContentView.
2478         (WebInspector.TimelineContentView.prototype.shown): Sync enablement of the "Clear Timelines" button to recording
2479         read-only state.
2480
2481         (WebInspector.TimelineContentView.prototype.saveToCookie):
2482         (WebInspector.TimelineContentView.prototype.restoreFromCookie): Added. Only handle saving/restoring the subview.
2483
2484         (WebInspector.TimelineContentView.prototype._pathComponentSelected):
2485         (WebInspector.TimelineContentView.prototype._showTimelineView): Relax the early return so that timeline views
2486         and content tree outlines are reattached when re-navigating to the same timeline view via back-forward entries.
2487         (WebInspector.TimelineContentView.prototype.showTimelineView): Deleted.
2488
2489         * UserInterface/Views/TimelineOverviewGraph.js:
2490         (WebInspector.TimelineOverviewGraph):
2491
2492         * UserInterface/Views/TimelineSidebarPanel.js:
2493         (WebInspector.TimelineSidebarPanel): Keep a tree outline and tree element map for storing available recordings.
2494         (WebInspector.TimelineSidebarPanel.createTimelineTreeElement):
2495         (WebInspector.TimelineSidebarPanel.prototype.shown): Added.
2496         (WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView): Add a guard.
2497         (WebInspector.TimelineSidebarPanel.prototype.get hasSelectedElement): Added. Selected recording tree elements
2498         should be considered when deciding whether a represented object has been selected in the sidebar panel.
2499
2500         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looselyCompareRepresentedObjects):
2501         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.get if):
2502         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject):
2503         (WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
2504         (WebInspector.TimelineSidebarPanel.prototype.showTimelineViewForType): Renamed to explicit take a type identifier.
2505         Delegate the actual showing of the timeline view to the onselect handler for the timelines tree outline.
2506
2507         (WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
2508         (WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie): Fix a typo.
2509         (WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie): Fix a typo.
2510         (WebInspector.TimelineSidebarPanel.prototype._recordingsTreeElementSelected): Sync the currently displayed
2511         recording object and content view, and sync the selected tree element to the displayed timeline subview.
2512
2513         (WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected): If this is a user action, show the timeline.
2514         (WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange): Use classList.toggle().
2515         (WebInspector.TimelineSidebarPanel.prototype._recordingCreated): Dynamically add new recordings to the interface.
2516         (WebInspector.TimelineSidebarPanel.prototype._recordingLoaded): Automatically show recordings when they are loaded.
2517         (WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked): Shift+click will force-create a new recording.
2518         (WebInspector.TimelineSidebarPanel.prototype.initialize): Deleted.
2519         * UserInterface/Views/TimelineView.js:
2520         (WebInspector.TimelineView):
2521         (WebInspector.TimelineView.prototype.get representedObject):
2522
2523 2014-08-05  Brian J. Burg  <burg@cs.washington.edu>
2524
2525         Web Inspector: ReplayManager shouldn't assume replay status when the inspector is opened
2526         https://bugs.webkit.org/show_bug.cgi?id=135212
2527
2528         Reviewed by Timothy Hatcher.
2529
2530         The inspector could be closed and reopened at any point during capturing or replaying.
2531         ReplayManager should query the current state on initialization rather than assuming
2532         that the replay controller is still in its initial state.
2533
2534         ReplayManager's initialization code requires querying the backend for the current replay
2535         state. This could race with replay protocol events that mutate the manager's state before
2536         it is fully initialized, leading to undefined behavior.
2537
2538         To mitigate this, all protocol event handlers (called by ReplayObserver) are wrapped
2539         with a guard that enqueues the callback if initialization is not yet complete. This
2540         queue is implemented via multiple then-chaining of a shared 'initialization' promise
2541         which resolves when initialization completes.
2542
2543         * UserInterface/Controllers/ReplayManager.js:
2544         (WebInspector.ReplayManager.then):
2545         (WebInspector.ReplayManager.catch):
2546         (WebInspector.ReplayManager): Rewrite the initialization code to first query the replay
2547         state, set the initialization flag to true, and then request and update session records.
2548         The sessions must be loaded after querying initial state because ReplayManager.sessionCreated
2549         requires replay state to be initialized.
2550
2551         (WebInspector.ReplayManager.prototype.get sessionState):
2552         (WebInspector.ReplayManager.prototype.get segmentState):
2553         (WebInspector.ReplayManager.prototype.get activeSessionIdentifier):
2554         (WebInspector.ReplayManager.prototype.get activeSegmentIdentifier):
2555         (WebInspector.ReplayManager.prototype.get playbackSpeed):
2556         (WebInspector.ReplayManager.prototype.set playbackSpeed):
2557         (WebInspector.ReplayManager.prototype.get currentPosition): Add assertions to catch uses of
2558         manager state before the manager is fully initialized.
2559
2560         (WebInspector.ReplayManager.prototype.waitUntilInitialized): Added. It returns a shared promise
2561         that is fulfilled when initialization is complete.
2562
2563         (WebInspector.ReplayManager.prototype.captureStarted):
2564         (WebInspector.ReplayManager.prototype.captureStopped):
2565         (WebInspector.ReplayManager.prototype.playbackStarted):
2566         (WebInspector.ReplayManager.prototype.playbackHitPosition):
2567         (WebInspector.ReplayManager.prototype.playbackPaused):
2568         (WebInspector.ReplayManager.prototype.playbackFinished):
2569         (WebInspector.ReplayManager.prototype.sessionModified):
2570         (WebInspector.ReplayManager.prototype.sessionLoaded):
2571         (WebInspector.ReplayManager.prototype.segmentCompleted.set catch):
2572         (WebInspector.ReplayManager.prototype.segmentCompleted):
2573         (WebInspector.ReplayManager.prototype.segmentRemoved.then):
2574         (WebInspector.ReplayManager.prototype.segmentRemoved):
2575         (WebInspector.ReplayManager.prototype.segmentLoaded): Add initialization guards.
2576
2577 2014-08-05  Brian J. Burg  <burg@cs.washington.edu>
2578
2579         Web Replay: rename protocol methods for getting replay session/segment data
2580         https://bugs.webkit.org/show_bug.cgi?id=135618
2581
2582         Reviewed by Timothy Hatcher.
2583
2584         * UserInterface/Controllers/ReplayManager.js:
2585         (WebInspector.ReplayManager.prototype.getSession.get var):
2586         (WebInspector.ReplayManager.prototype.getSegment.get var):
2587         * UserInterface/Models/ReplaySession.js:
2588         (WebInspector.ReplaySession.prototype.segmentsChanged):
2589
2590 2014-08-05  Brian J. Burg  <burg@cs.washington.edu>
2591
2592         Web Inspector: cannot navigate between multiple applicable dashboards
2593         https://bugs.webkit.org/show_bug.cgi?id=135130
2594
2595         Reviewed by Timothy Hatcher.
2596
2597         Add navigation arrows between dashboards when multiple dashboards are applicable.
2598         For example, the user should be able to go back to the default dashboard while paused
2599         at a breakpoint. Dashboards form a stack based on when they are first introduced.
2600
2601         * UserInterface/Views/DashboardContainerView.css:
2602         (.toolbar .dashboard): Increase padding-right a bit to make room for arrows.
2603         (.toolbar .dashboard:not(.visible)): Fix a bug where higher dashboards in the dashboard stack
2604         can shine through when animating between two lower dashboards that have transparent background.
2605         This ensures that at most two dashboards (namely, the ones being animated) are displayed.
2606
2607         (.dashboard-container .advance-arrow): Main style class for navigation arrows.
2608         (.dashboard-container .advance-arrow:hover):
2609         (.dashboard-container .advance-arrow:active):
2610         (.dashboard-container .advance-arrow.inactive):
2611         (.toolbar.label-only .dashboard-container .advance-arrow): Make arrows slightly smaller when
2612         the dashboards get shorter.
2613
2614         (.dashboard-container .advance-arrow.advance-forward):
2615         (.dashboard-container .advance-arrow.advance-backward):
2616         * UserInterface/Views/DashboardContainerView.js:
2617         (WebInspector.DashboardContainerView): Arrow styles are updated when a dashboard is shown,
2618         hidden, or closed. When moving away, we dismiss (i.e., set zero opacity) arrows at animation
2619         start. When the animation finishes, redisplay arrows that are applicable for the new dashboard.
2620
2621         (WebInspector.DashboardContainerView.prototype._advanceForwardArrowClicked):
2622         (WebInspector.DashboardContainerView.prototype._advanceBackwardArrowClicked):
2623         (WebInspector.DashboardContainerView.prototype._dismissAdvanceArrows):
2624         (WebInspector.DashboardContainerView.prototype._updateAdvanceArrowVisibility):
2625         (WebInspector.DashboardContainerView.prototype._showDashboardAtIndex): There was a bug here
2626         where it would unconditionally use the same animation direction when showing a dashboard, but
2627         it was hard to spot without arrows that must correlate with the animation direction.
2628
2629         (WebInspector.DashboardContainerView.prototype.animationEnded):
2630         (WebInspector.DashboardContainerView.prototype._showDashboardView):
2631         (WebInspector.DashboardContainerView.prototype._hideDashboardView):
2632         (WebInspector.DashboardContainerView.prototype._closeDashboardView):
2633
2634 2014-08-05  Saam Barati  <sbarati@apple.com>
2635
2636         Web Inspector: shown() called on a content view when stepping over an instruction in the debugger
2637         https://bugs.webkit.org/show_bug.cgi?id=135311
2638
2639         Reviewed by Timothy Hatcher.
2640
2641         ContentViewContainer should not repeatedly call ContentView.prototype.shown 
2642         on ContentViews that are already visible. ContentViewContainer now passes
2643         a flag to BackForwardEntry.prototype.prepareToShow indicating whether it should
2644         call the shown function on the ContentView it is about to display.
2645         ContentViewContainer.prototype.showBackForwardEntryForIndex passes in this
2646         flag based on its ContentView being visible.
2647
2648         * UserInterface/Models/BackForwardEntry.js:
2649         (WebInspector.BackForwardEntry.prototype.prepareToShow):
2650         * UserInterface/Views/ContentViewContainer.js:
2651         (WebInspector.ContentViewContainer.prototype.showBackForwardEntryForIndex):
2652         (WebInspector.ContentViewContainer.prototype.replaceContentView):
2653         (WebInspector.ContentViewContainer.prototype.closeAllContentViewsOfPrototype):
2654         (WebInspector.ContentViewContainer.prototype.shown):
2655         (WebInspector.ContentViewContainer.prototype._showEntry):
2656
2657 2014-08-01  Jonathan Wells  <jonowells@apple.com>
2658
2659         Web Inspector: Timeline header height doesn't match style updates.
2660         https://bugs.webkit.org/show_bug.cgi?id=135516
2661
2662         Reviewed by Timothy Hatcher.
2663
2664         Update the timeline header height to match the updates
2665         to the navigation bars in other panels made in
2666         https://bugs.webkit.org/show_bug.cgi?id=135445. Also
2667         update the shadows on some of the search bars.
2668
2669         * UserInterface/Views/FilterBar.css:
2670         (.filter-bar > input[type="search"]):
2671         (body.mac-platform.legacy .filter-bar > input[type="search"]):
2672         * UserInterface/Views/FindBanner.css:
2673         (.find-banner > input[type="search"]):
2674         (body.mac-platform.legacy .find-banner > input[type="search"]):
2675         * UserInterface/Views/LogContentView.css:
2676         (.search-bar.log-search-bar > input[type="search"]):
2677         (body.mac-platform.legacy .search-bar.log-search-bar > input[type="search"]):
2678         Remove inset shadows on search bars.
2679
2680         * UserInterface/Views/TimelineSidebarPanel.css:
2681         (.sidebar > .panel.navigation.timeline > .status-bar):
2682         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar):
2683         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
2684         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
2685         (.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
2686         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .status-bar > .record-status):
2687         (.sidebar > .panel.navigation.timeline > .title-bar.timelines):
2688         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timelines):
2689         (.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
2690         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
2691         (.sidebar > .panel.navigation.timeline > .timelines-content):
2692         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content):
2693         (.sidebar > .panel.navigation.timeline > .empty-content-placeholder):
2694         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .empty-content-placeholder):
2695         Update the height of the timeline status bar.
2696
2697 2014-07-31  Joseph Pecoraro  <pecoraro@apple.com>
2698
2699         Web Inspector: "Stop Recording" button feels unresponsive, recording takes a long time to stop
2700         https://bugs.webkit.org/show_bug.cgi?id=135490
2701
2702         Reviewed by Timothy Hatcher.
2703
2704         * UserInterface/Controllers/TimelineManager.js:
2705         (WebInspector.TimelineManager.prototype.stopCapturing):
2706         Immediately stop the recording without waiting for an event from the backend.
2707         This makes the Web Inspector UI feel responsive to the user stopping the recording.
2708         This also matches behavior before r171195.
2709
2710 2014-07-31  Joseph Pecoraro  <pecoraro@apple.com>
2711
2712         Web Inspector: Timeline recording is not working inspecting iOS 7 and earlier
2713         https://bugs.webkit.org/show_bug.cgi?id=135466
2714
2715         Reviewed by Timothy Hatcher.
2716
2717         Start / stop capturing for older backends that won't emit start / stop events.
2718
2719         * UserInterface/Protocol/InspectorBackend.js:
2720         (InspectorBackend.Agent.prototype.hasEvent):
2721         Provide a way to check if an event is supported.
2722
2723         * UserInterface/Controllers/TimelineManager.js:
2724         (WebInspector.TimelineManager.prototype.startCapturing):
2725         (WebInspector.TimelineManager.prototype.stopCapturing):
2726         Fallback to starting and stopping capturing manually if the backend
2727         does not provide the events.
2728
2729 2014-07-31  Jonathan Wells  <jonowells@apple.com>
2730
2731         Web Inspector: Sync button look and feel with Xcode updates.
2732         https://bugs.webkit.org/show_bug.cgi?id=135445
2733
2734         Reviewed by Timothy Hatcher.
2735
2736         Update styles to match recent changes to Xcode text-only
2737         buttons, the navigation bar, and search fields. Include
2738         older style rules for older Mac platforms.
2739
2740         * UserInterface/Views/ButtonNavigationItem.css:
2741         (.navigation-bar .item.button.text-only):
2742         (body.mac-platform.legacy .navigation-bar .item.button.text-only):
2743         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
2744         (.sidebar > .panel.details.css-style > .navigation-bar):
2745         (.sidebar > .panel.details.css-style > .content):
2746         (body.mac-platform.legacy .sidebar > .panel.details.css-style > .content):
2747         * UserInterface/Views/DebuggerSidebarPanel.css:
2748         (.sidebar > .panel.navigation.debugger > .content):
2749         (body.mac-platform.legacy .sidebar > .panel.navigation.debugger > .content):
2750         * UserInterface/Views/DividerNavigationItem.css:
2751         (.navigation-bar .item.divider):
2752         (body.mac-platform.legacy .navigation-bar .item.divider):
2753         * UserInterface/Views/FilterBar.css:
2754         (.filter-bar):
2755         (body.mac-platform.legacy .filter-bar):
2756         (.filter-bar > input[type="search"]):
2757         (body.mac-platform.legacy .filter-bar > input[type="search"]):
2758         * UserInterface/Views/LogContentView.css:
2759         (.search-bar.log-search-bar > input[type="search"]):
2760         (@media reader):
2761         (.log-search-bar > input): Deleted.
2762         * UserInterface/Views/Main.css:
2763         (#split-content-browser > .navigation-bar):
2764         (body.mac-platform.legacy #split-content-browser > .navigation-bar):
2765         * UserInterface/Views/NavigationBar.css:
2766         (.navigation-bar):
2767         (body.mac-platform.legacy .navigation-bar):
2768         (.navigation-bar .item):
2769         (body.mac-platform.legacy .navigation-bar .item):
2770         * UserInterface/Views/NavigationSidebarPanel.css:
2771         (.sidebar > .panel.navigation > .content):
2772         (body.mac-platform.legacy .sidebar > .panel.navigation > .content):
2773         * UserInterface/Views/QuickConsole.css:
2774         (.quick-console):
2775         (body.mac-platform.legacy .quick-console):
2776         * UserInterface/Views/RadioButtonNavigationItem.css:
2777         (.navigation-bar .item.radio.button.text-only:hover):
2778         (body.mac-platform.legacy .navigation-bar .item.radio.button.text-only:hover):
2779         (.navigation-bar .item.radio.button.text-only.selected):
2780         (body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected):
2781         (.navigation-bar .item.radio.button.text-only:active):
2782         (.navigation-bar .item.radio.button.text-only.selected:active):
2783         (body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected:active):
2784         * UserInterface/Views/ResourceSidebarPanel.css:
2785         (.sidebar > .panel.navigation.resource > .empty-content-placeholder):
2786         (body.mac-platform.legacy .sidebar > .panel.navigation.resource > .empty-content-placeholder):
2787         (.sidebar > .panel.navigation.resource > .search-bar):
2788         (body.mac-platform.legacy .sidebar > .panel.navigation.resource > .search-bar):
2789         (.sidebar > .panel.navigation.resource > .search-bar > input[type="search"]):
2790         (body.mac-platform.legacy .sidebar > .panel.navigation.resource > .search-bar > input[type="search"]):
2791         * UserInterface/Views/ScopeBar.css:
2792         (.scope-bar > li):
2793         (body.mac-platform.legacy .scope-bar > li):
2794         (.scope-bar > li:hover):
2795         (body.mac-platform.legacy .scope-bar > li:hover):
2796         (.scope-bar > li.selected):
2797         (.scope-bar > li:active):
2798         (body.mac-platform.legacy .scope-bar > li:active):
2799         (.scope-bar > li.selected:active):
2800         (body.mac-platform.legacy .scope-bar > li.selected:active):
2801         * UserInterface/Views/SearchBar.css:
2802         (.search-bar > input[type="search"]):
2803         (body.mac-platform.legacy .search-bar > input[type="search"]):
2804         Update styles and apply older styles to legacy Mac platforms.
2805
2806 2014-07-31  Brian J. Burg  <burg@cs.washington.edu>
2807
2808         Web Inspector: MessageDispatcher should not synchronously dispatch all backend messages
2809         https://bugs.webkit.org/show_bug.cgi?id=135427
2810
2811         Reviewed by Timothy Hatcher.
2812
2813         The frontend dispatches all queued messages from the backend synchronously, even if there are
2814         hundreds of messages, or even if some of the messages take a long time (>10ms) to process.
2815
2816         This patch adds a time limit to the frontend's message dispatcher. If the time limit is exceeded
2817         when processing the message queue, unhandled messages remain in the queue and the dispatcher goes
2818         to sleep until the next run loop (obtained by a new setTimeout).
2819
2820         This has the effect of removing stutters when the message queue has hundreds of small messages.
2821         The outliers are still the same since some single messages can take over 200ms to be handled.
2822
2823         This patch also improves performance logging in InspectorBackend so that it is easier to see
2824         message handling times and their distribution among run loop turns.
2825
2826         * UserInterface/Protocol/InspectorBackend.js:
2827         (InspectorBackendClass): Add a new diagnostic flag that warns about slow message handling.
2828         (InspectorBackendClass.prototype._dispatchCallback.get if): Improve logging.
2829         (InspectorBackendClass.prototype._dispatchCallback): Improve logging.
2830         (InspectorBackendClass.prototype._dispatchEvent): Improve logging.
2831         * UserInterface/Protocol/MessageDispatcher.js:
2832         (WebInspector.dispatchNextQueuedMessageFromBackend): Keep track of a time limit for message
2833         dispatching, and set a new timeout if we exceed the time limit.
2834
2835 2014-07-31  Joseph Pecoraro  <pecoraro@apple.com>
2836
2837         Web Inspector: Right edge of Timeline Record button does not work
2838         https://bugs.webkit.org/show_bug.cgi?id=135444
2839
2840         Reviewed by Timothy Hatcher.
2841
2842         When hovering the record button we would show the status text, however
2843         because the left edge of the status text box would overlap the right
2844         edge of the record button causing completely unexpected behavior.
2845
2846         Position the status text correctly so that it never overlaps the record
2847         button. 5px to match the left margin of the record button, and another
2848         2px for some padding between the button and text.
2849
2850         * UserInterface/Views/TimelineSidebarPanel.css:
2851         (.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
2852
2853 2014-07-31  Joseph Pecoraro  <pecoraro@apple.com>
2854
2855         Web Inspector: console.profile missing profile information
2856         https://bugs.webkit.org/show_bug.cgi?id=135432
2857
2858         Reviewed by Timothy Hatcher.
2859
2860         * UserInterface/Models/ScriptTimelineRecord.js:
2861         Delete the payload information as soon as it has been processed.
2862         It is no longer needed anymore and can be garbage collected.
2863
2864 2014-07-30  Brian J. Burg  <burg@cs.washington.edu>
2865
2866         Web Inspector: ProbeSetDetailsSection should not create live location links for unresolved breakpoints
2867         https://bugs.webkit.org/show_bug.cgi?id=135367
2868
2869         Reviewed by Timothy Hatcher.
2870
2871         Regenerate the source code link whenever the breakpoint resolved status changes. If it is
2872         resolved, then we can create a live location link that respects source maps.
2873
2874         * UserInterface/Views/ProbeSetDetailsSection.js:
2875         (WebInspector.ProbeSetDetailsSection):
2876         (WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement): Added.
2877         (WebInspector.ProbeSetDetailsSection.prototype._probeSetPositionTextOrLink): Deleted.
2878
2879 2014-07-29  Joseph Pecoraro  <pecoraro@apple.com>
2880
2881         Web Inspector: 80% of time during recording is spent creating source code locations for profile nodes
2882         https://bugs.webkit.org/show_bug.cgi?id=135399
2883
2884         Reviewed by Timothy Hatcher.
2885
2886         Profiling the inspector while recording a timeline, a significant amount of
2887         time was spent creating SourceCodeLocation objects for profiling information
2888         and call frames. A lot of this data was eagerly being processed, even though
2889         it would not immediately be presentable to the user.
2890
2891         This makes two significant changes. We create a LazySourceCodeLocation class
2892         which does as little as possible until display information is requested. We
2893         also lazily convert the profiler payload data to a Profile object, so the
2894         processing is only done if you drill into the Script specific timeline.
2895
2896         This results in a significant performance improvement in the overview view.
2897
2898         * UserInterface/Controllers/TimelineManager.js:
2899         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
2900         (WebInspector.TimelineManager.prototype.eventRecorded):
2901         (WebInspector.TimelineManager.prototype._callFramesFromPayload.createCallFrame):
2902         (WebInspector.TimelineManager.prototype._callFramesFromPayload):
2903         (WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeFromPayload): Deleted.
2904         (WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeCallFromPayload): Deleted.
2905         (WebInspector.TimelineManager.prototype._profileFromPayload): Deleted.
2906         Do not eagerly process profile payloads. Instead pass the payload to ScriptTimelineRecords.
2907         Likewise create callframes with lazy source code locations to do the minimum amount of work.
2908
2909         * UserInterface/Models/ScriptTimelineRecord.js:
2910         (WebInspector.ScriptTimelineRecord):
2911         (WebInspector.ScriptTimelineRecord.prototype.get profile):
2912         (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeFromPayload):
2913         (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeCallFromPayload):
2914         (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
2915         Only when the profile is asked do we process the profiler payload information.
2916         This defer the processing until at least the user drills into the Script timeline.
2917
2918         * UserInterface/Main.html:
2919         Add the new class and ensure SourceCodeLocation is available beforehand.
2920
2921         * UserInterface/Models/LazySourceCodeLocation.js: Added.
2922         (WebInspector.LazySourceCodeLocation):
2923         (WebInspector.LazySourceCodeLocation.prototype.isEqual):
2924         (WebInspector.LazySourceCodeLocation.prototype.get sourceCode):
2925         (WebInspector.LazySourceCodeLocation.prototype.set sourceCode):
2926         (WebInspector.LazySourceCodeLocation.prototype.get formattedLineNumber):
2927         (WebInspector.LazySourceCodeLocation.prototype.get formattedColumnNumber):
2928         (WebInspector.LazySourceCodeLocation.prototype.formattedPosition):
2929         (WebInspector.LazySourceCodeLocation.prototype.hasFormattedLocation):
2930         (WebInspector.LazySourceCodeLocation.prototype.hasDifferentDisplayLocation):
2931         (WebInspector.LazySourceCodeLocation.prototype.resolveMappedLocation):
2932         (WebInspector.LazySourceCodeLocation.prototype._lazyInitialization):
2933         Only when display information is requested will we perform extra processing.
2934         For basic information we do not need to check for formatted (pretty-printed) info.
2935
2936         * UserInterface/Models/SourceCode.js:
2937         (WebInspector.SourceCode.prototype.createLazySourceCodeLocation):
2938         Provide an explict create function for lazy source codes.
2939
2940         * UserInterface/Models/SourceCodeLocation.js:
2941         (WebInspector.SourceCodeLocation.prototype.set sourceCode):
2942         (WebInspector.SourceCodeLocation.prototype.get displaySourceCode):
2943         (WebInspector.SourceCodeLocation.prototype.get displayLineNumber):
2944         (WebInspector.SourceCodeLocation.prototype.get displayColumnNumber):
2945         (WebInspector.SourceCodeLocation.prototype.hasMappedLocation):
2946         (WebInspector.SourceCodeLocation.prototype.setSourceCode):
2947         (WebInspector.SourceCodeLocation.prototype.resolveMappedLocation):
2948         (WebInspector.SourceCodeLocation.prototype._makeChangeAndDispatchChangeEventIfNeeded):
2949         (WebInspector.SourceCodeLocation.prototype._resolveMappedLocation): Deleted.
2950         Include two protected functions which LazySourceCodeLocation overrides.
2951
2952 2014-07-29  Joseph Pecoraro  <pecoraro@apple.com>
2953
2954         Web Inspector: Only compute full ProfileNode times if needed - Legacy Profiler
2955         https://bugs.webkit.org/show_bug.cgi?id=135406
2956
2957         Reviewed by Timothy Hatcher.
2958
2959         Full ProfileNode times are only used by the Legacy Profiler. The new profile
2960         information in the Scripts Timelines currently never uses the pass. We should
2961         avoid calculating it if we never use it.
2962
2963         * UserInterface/Models/ProfileNode.js:
2964         (WebInspector.ProfileNode.prototype.get startTime):
2965         (WebInspector.ProfileNode.prototype.get endTime):
2966         (WebInspector.ProfileNode.prototype.get selfTime):
2967         (WebInspector.ProfileNode.prototype.get totalTime):
2968         (WebInspector.ProfileNode.prototype.establishRelationships):
2969         (WebInspector.ProfileNode.prototype._computeTotalTimes):
2970
2971 2014-07-29  Joseph Pecoraro  <pecoraro@apple.com>
2972
2973         Web Inspector: Reduce forced layouts in TimelineOverview
2974         https://bugs.webkit.org/show_bug.cgi?id=135405
2975
2976         Reviewed by Timothy Hatcher.
2977
2978         Remove another forced layout. The scroll container won't
2979         change size unless the ContentView itself resized. Make the
2980         distinction between a layout update due to a resize and
2981         normal events (scale changes, etc) and only calculate
2982         element sizes then.
2983
2984         * UserInterface/Views/TimelineContentView.js:
2985         (WebInspector.TimelineContentView.prototype.updateLayout):
2986         * UserInterface/Views/TimelineOverview.js:
2987         (WebInspector.TimelineOverview):
2988         (WebInspector.TimelineOverview.prototype.get visibleDuration):
2989         (WebInspector.TimelineOverview.prototype.updateLayoutForResize):
2990
2991 2014-07-29  Brian J. Burg  <burg@cs.washington.edu>
2992
2993         Web Inspector: breakpoints are always speculatively resolved when restored from local storage
2994         https://bugs.webkit.org/show_bug.cgi?id=135396
2995
2996         Reviewed by Timothy Hatcher.
2997
2998         A longstanding quirk/optimization in the frontend is that we immediately set a breakpoint
2999         as resolved if the breakpoint was successfully set in the backend. This ensures that clicking in
3000         the gutter immediately produces a resolved breakpoint with only one round-trip.
3001
3002         However, not all breakpoints should be speculatively resolved, because the corresponding resource
3003         may not be loaded yet. This situation causes problems for code that assumes a resolved breakpoint
3004         also has a valid sourceCodeLocation.sourceCode.
3005
3006         * UserInterface/Controllers/DebuggerManager.js:
3007         (WebInspector.DebuggerManager.restoreBreakpointsSoon): Don't leak the variable to global scope.
3008         (WebInspector.DebuggerManager):
3009         (WebInspector.DebuggerManager.prototype.speculativelyResolveBreakpoint):
3010         (WebInspector.DebuggerManager.prototype.addBreakpoint): Speculatively resolve here if requested
3011         using the success callback passed to _setBreakpoint.
3012
3013         (WebInspector.DebuggerManager.prototype.didSetBreakpoint): Emit simulated
3014         Debugger.breakpointResolved events since they are only sent by the backend when a script is parsed.
3015
3016         (WebInspector.DebuggerManager.prototype._setBreakpoint):
3017         * UserInterface/Views/SourceCodeTextEditor.js:
3018         (WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointAdded): Request speculative resolve.
3019
3020 2014-07-29  Joseph Pecoraro  <pecoraro@apple.com>
3021
3022         Web Inspector: Eliminate more forced layouts during timeline recordings
3023         https://bugs.webkit.org/show_bug.cgi?id=135397
3024
3025         Reviewed by Timothy Hatcher.
3026
3027         Instead of computing the secondsPerPixel in each overview graph,
3028         we can ask the overview view itself which has a cached value.
3029         The computation used to force a layout, now it doesn't need to.
3030
3031         * UserInterface/Views/LayoutTimelineOverviewGraph.js:
3032         * UserInterface/Views/NetworkTimelineOverviewGraph.js:
3033         * UserInterface/Views/ScriptTimelineOverviewGraph.js:
3034         * UserInterface/Views/TimelineOverview.js:
3035         (WebInspector.TimelineOverview):
3036         * UserInterface/Views/TimelineOverviewGraph.js:
3037         (WebInspector.TimelineOverviewGraph):
3038         (WebInspector.TimelineOverviewGraph.prototype.get timelineOverview):
3039         (WebInspector.TimelineOverviewGraph.prototype.set timelineOverview):
3040
3041 2014-07-28  Joseph Pecoraro  <pecoraro@apple.com>
3042
3043         Web Inspector: Incorrectly sized TimelineDataGrid event bubble
3044         https://bugs.webkit.org/show_bug.cgi?id=135371
3045
3046         Reviewed by Timothy Hatcher.
3047
3048         Previously the secondsPerPixel calculation was relying on an element
3049         that may not be sized yet. This was resulting in a visibleWidth of 0
3050         and resulted in secondsPerPixel being Infinity. Fortunately, the
3051         graph data source already knows the secondsPerPixel so we can just
3052         ask it. Getting the correct value and eliminating forced layouts.
3053
3054         * UserInterface/Views/OverviewTimelineView.js:
3055         (WebInspector.OverviewTimelineView.prototype.get secondsPerPixel):
3056         * UserInterface/Views/TimelineDataGridNode.js:
3057
3058 2014-07-28  Joseph Pecoraro  <pecoraro@apple.com>
3059
3060         Web Inspector: Reduce work creating the initial WebInspector.TimelineRecordBar
3061         https://bugs.webkit.org/show_bug.cgi?id=135373
3062
3063         Reviewed by Timothy Hatcher.
3064
3065         Eliminate a bit of extra work creating TimelineRecordBars. Previously
3066         the constructor would setup an empty list of records, and then we would
3067         immediately after replace them. Now just set them in the constructor.
3068
3069         * UserInterface/Views/LayoutTimelineOverviewGraph.js:
3070         (WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout.createBar):
3071         (WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
3072         * UserInterface/Views/NetworkTimelineOverviewGraph.js:
3073         (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar):
3074         (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout):
3075         * UserInterface/Views/ScriptTimelineOverviewGraph.js:
3076         (WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout.createBar):
3077         (WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
3078         * UserInterface/Views/TimelineDataGridNode.js:
3079         (WebInspector.TimelineDataGridNode.prototype.refreshGraph.createBar):
3080
3081 2014-07-28  Timothy Hatcher  <timothy@apple.com>
3082
3083         Web Inspector: Unexpected dark border on selected but window inactive timeline
3084         https://bugs.webkit.org/show_bug.cgi?id=135360
3085
3086         Update the border-top colors for the item adjacent to the selected item.
3087
3088         Reviewed by Joseph Pecoraro.
3089
3090         * UserInterface/Views/TimelineSidebarPanel.css:
3091         (.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
3092         (.sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
3093         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
3094         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
3095
3096 2014-07-28  Joseph Pecoraro  <pecoraro@apple.com>
3097
3098         Web Inspector: Disable Copy Row in Timelines DataGrids, it does not currently provide value
3099         https://bugs.webkit.org/show_bug.cgi?id=135364
3100
3101         Reviewed by Timothy Hatcher.
3102
3103         * UserInterface/Views/DataGrid.js:
3104         (WebInspector.DataGridNode):
3105         (WebInspector.DataGridNode.prototype.get copyable):
3106         (WebInspector.DataGridNode.prototype.set copyable):
3107         * UserInterface/Views/TimelineDataGridNode.js:
3108         (WebInspector.TimelineDataGridNode):
3109
3110 2014-07-26  Brian J. Burg  <burg@cs.washington.edu>
3111
3112         Web Inspector: ReplayManager uses undefined events and inconsistent event data
3113         https://bugs.webkit.org/show_bug.cgi?id=135222
3114
3115         Reviewed by Timothy Hatcher.
3116
3117         * UserInterface/Controllers/ReplayManager.js:
3118         (WebInspector.ReplayManager.prototype.sessionCreated.this):
3119         (WebInspector.ReplayManager.prototype.sessionCreated):
3120         (WebInspector.ReplayManager.prototype.segmentLoaded):
3121         (WebInspector.ReplayManager.prototype.segmentUnloaded):
3122         (WebInspector.ReplayManager.prototype.stopCapturing):
3123         (WebInspector.ReplayManager.prototype.replayToMarkIndex):
3124         (WebInspector.ReplayManager.prototype.segmentCompleted.set catch):
3125         (WebInspector.ReplayManager.prototype.segmentCompleted):
3126         (WebInspector.ReplayManager.prototype.startCapturing):
3127         (WebInspector.ReplayManager.prototype._changeSessionState):
3128
3129 2014-07-26  Joseph Pecoraro  <pecoraro@apple.com>
3130
3131         Remove accidental debugging console.log
3132         https://bugs.webkit.org/show_bug.cgi?id=135315
3133
3134         Reviewed by Alexey Proskuryakov.
3135
3136         * UserInterface/Views/ApplicationCacheFrameContentView.js:
3137         (WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid):
3138
3139 2014-07-26  Joseph Pecoraro  <pecoraro@apple.com>
3140
3141         Web Inspector: Timelines performance is very slow, has many forced layouts
3142         https://bugs.webkit.org/show_bug.cgi?id=135313
3143
3144         Reviewed by Timothy Hatcher.
3145
3146         * UserInterface/Views/NavigationItem.js:
3147         (WebInspector.NavigationItem):
3148         (WebInspector.NavigationItem.prototype.get hidden):
3149         (WebInspector.NavigationItem.prototype.set hidden):
3150         Don't have the parent navigation bar update layout if the hidden state did not change.
3151         This greatly reduces the number of forced layouts as timeline nodes are added.
3152
3153         * UserInterface/Views/NavigationSidebarPanel.js:
3154         (WebInspector.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
3155         (WebInspector.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
3156         Don't do any work if this is not changing the view.
3157
3158         (WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibilitySoon):
3159         (WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
3160         (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
3161         When first selecting a specific timeline (Layout / Scripts) we would have a very long hang
3162         updating the content. Most of this was time spent updating the overflow shadow visibility
3163         because every single tree element addition was causing a layout invalidation and forced layout.
3164         Coalesce all of the tree element adds into a single update at the end.
3165
3166         * UserInterface/Views/TimelineOverview.js:
3167         (WebInspector.TimelineOverview.prototype.updateLayout):
3168         Calculating the visible duration checks offsetLeft. Calculate this once, outside
3169         of a loop down below, to prevent or reduce possible forced layouts.
3170
3171         * UserInterface/Views/TreeOutline.js:
3172         (TreeElement.prototype.revealed):
3173         Prevent doing any work for timeline tree elements outside of the selected time range.
3174         Previously they were considered revealed if a parent was expanded, even though that
3175         parent was hidden. This greatly reduces the amount of work during a recording, since
3176         previously we were potentially doing a forced layout for hidden nodes.
3177
3178         * UserInterface/Views/TimelineSidebarPanel.js:
3179         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looselyCompareRepresentedObjects):
3180         Ignore ProfileNode, which may happen here in the Script timeline.
3181
3182 2014-07-23  Brian J. Burg  <burg@cs.washington.edu>
3183
3184         Web Inspector: InspectorBackend's promise-based agent API does not support multiple return values
3185         https://bugs.webkit.org/show_bug.cgi?id=135207
3186
3187         Reviewed by Joseph Pecoraro.
3188
3189         The promise wrapper implementation assumed that the protocol callback supplies a single 'payload'
3190         return value, but InspectorBackend will actually unpack multiple return values as multiple
3191         callback arguments. Set a special flag so it will not try to apply multiple return values.
3192
3193         It would read better if multiple return values could be spread to the resolve callback, but
3194         multiple argument support are not required by the Promises specification, so we won't use them.
3195
3196         * UserInterface/Controllers/ReplayManager.js: Fix uses of promise return values.
3197         (WebInspector.ReplayManager):
3198         * UserInterface/Models/ReplaySession.js:
3199         * UserInterface/Models/ReplaySessionSegment.js:
3200         (WebInspector.ReplaySessionSegment):
3201         * UserInterface/Protocol/InspectorBackend.js:
3202         (InspectorBackend.Command.prototype.promise):
3203
3204 2014-07-21  Saam Barati  <sbarati@apple.com>
3205
3206         Web Inspector: Add esprima to the WebInspector.
3207         https://bugs.webkit.org/show_bug.cgi?id=135098
3208
3209         Reviewed by Joseph Pecoraro.
3210
3211         This patch includes Esprima into the WebInspector and attaches its
3212         exported function onto the WebInspector namespace object. 
3213
3214         * UserInterface/External/Esprima: Added.
3215         * UserInterface/External/Esprima/esprima.js: Added.
3216         (.):
3217         * UserInterface/Main.html:
3218
3219 2014-07-21  Jonathan Wells  <jonowells@apple.com>
3220
3221         Back/Forward arrows (modern) are too large.
3222         https://bugs.webkit.org/show_bug.cgi?id=135073
3223
3224         Reviewed by Joseph Pecoraro.
3225
3226         Changes to adjust new forward and back arrow sizes to be more consistent with the 
3227         universal design language. Moved WebInspector.Platform definition to its own file.
3228         Refactored handling of image versions inside ImageUtilities.js.
3229
3230         * UserInterface/Base/ImageUtilities.js:
3231         (.restoreImage):
3232         (.generateImage):
3233         (generateColoredImagesForCSS):
3234         Make the default image versioning smarter.
3235
3236         * UserInterface/Base/Main.js:
3237         (WebInspector.contentLoaded):
3238         (WebInspector.contentLoaded.WebInspector.Platform.version.toString): Deleted.
3239         (WebInspector.contentLoaded.WebInspector.Platform.toString): Deleted.
3240         * UserInterface/Base/Platform.js: Added.
3241         Move platform information definition into Platform.js.
3242
3243         * UserInterface/Main.html: Include Platform.js.
3244
3245         * UserInterface/Views/ContentBrowser.js:
3246         (WebInspector.ContentBrowser):
3247         * UserInterface/Views/FindBanner.css:
3248         (.find-banner > button > .glyph):
3249         (body.mac-platform.legacy .find-banner > button > .glyph):
3250         (.find-banner > button.segmented.left > .glyph):
3251         (body.mac-platform.legacy .find-banner > button.segmented.left > .glyph):
3252         (.find-banner > button.segmented.right > .glyph):
3253         (body.mac-platform.legacy .find-banner > button.segmented.right > .glyph):
3254         (.find-banner > button.segmented):
3255         (body.mac-platform.legacy .find-banner > button.segmented):
3256         * UserInterface/Views/FindBanner.js:
3257         (WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
3258         Size of forward and back arrows adjusted.
3259
3260 2014-07-19  Saam Barati  <sbarati@apple.com>
3261
3262         Web Inspector: TextContentView calls wrong prototype function in the hidden() function
3263         https://bugs.webkit.org/show_bug.cgi?id=135097
3264
3265         Reviewed by Timothy Hatcher.
3266
3267         Corollary bug to: https://bugs.webkit.org/show_bug.cgi?id=135001
3268
3269         * UserInterface/Views/TextContentView.js:
3270         (WebInspector.TextContentView.prototype.hidden):
3271
3272 2014-07-18  Timothy Hatcher  <timothy@apple.com>
3273
3274         Revert r169735 since it broke Timeline, and fix bug 129696 in a more targeted way.
3275
3276         REGRESSION (r169735): Web Inspector: Timeline tree outline missing data until collapse-expand.
3277         https://bugs.webkit.org/show_bug.cgi?id=134845
3278
3279         Reviewed by Joseph Pecoraro.
3280
3281         * UserInterface/Views/DOMTreeElement.js:
3282         (WebInspector.DOMTreeElement.prototype.adjustCollapsedRange): Use button isteand of assuming
3283         item.listItemElement will be ready to use. The listItemElement node is lazily created.
3284         * UserInterface/Views/TreeOutline.js:
3285         (TreeOutline.prototype.appendChild): Don't attach unless _childrenListNode exists.
3286         (TreeOutline.prototype.insertChild): Ditto.
3287
3288 2014-07-17  Timothy Hatcher  <timothy@apple.com>
3289
3290         Make console.profile record to the Timeline.
3291
3292         https://bugs.webkit.org/show_bug.cgi?id=134643
3293
3294         Reviewed by Joseph Pecoraro.
3295
3296         * Localizations/en.lproj/localizedStrings.js:
3297         * UserInterface/Controllers/TimelineManager.js:
3298         (WebInspector.TimelineManager.prototype.startCapturing):
3299         (WebInspector.TimelineManager.prototype.stopCapturing):
3300         (WebInspector.TimelineManager.prototype.capturingStarted):
3301         (WebInspector.TimelineManager.prototype.capturingStopped):
3302         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
3303         (WebInspector.TimelineManager.prototype.eventRecorded):
3304         * UserInterface/Images/TimelineRecordConsoleProfile.svg: Added.
3305         * UserInterface/Models/ScriptTimelineRecord.js:
3306         * UserInterface/Protocol/TimelineObserver.js:
3307         (WebInspector.TimelineObserver.prototype.eventRecorded):
3308         (WebInspector.TimelineObserver.prototype.recordingStarted):
3309         (WebInspector.TimelineObserver.prototype.recordingStopped):
3310         * UserInterface/Views/TimelineIcons.css:
3311         (.console-profile-record .icon):
3312         * UserInterface/Views/TimelineRecordTreeElement.js:
3313         (WebInspector.TimelineRecordTreeElement):
3314
3315 2014-07-16  Saam Barati  <sbarati@apple.com>
3316
3317         Web Inspector: TextContentView calls the wrong super function in shown()
3318         https://bugs.webkit.org/show_bug.cgi?id=135001
3319
3320         Reviewed by Timothy Hatcher.
3321         TextContentView calls ResourceContentView.shown instead of ContentView.shown.
3322         It should call ContentView.shown because ContentView is its prototype.
3323
3324
3325         * UserInterface/Views/TextContentView.js:
3326         (WebInspector.TextContentView.prototype.shown):
3327
3328 2014-07-15  Jonathan Wells  <jonowells@apple.com>
3329
3330         Web Inspector: Modernize UI styles and better sync with platform styles
3331         https://bugs.webkit.org/show_bug.cgi?id=134846
3332
3333         Reviewed by Timothy Hatcher.
3334
3335         Updated styles to better match the OS UI design. Updated the forward/back button. 
3336         Moved several rules to selectors that support older OS designs. Added global platform
3337         data to support this patch.
3338
3339         * UserInterface/Images/BackArrow.svg: Added.
3340         * UserInterface/Images/BackArrowLegacy.svg: Copied from Source/WebInspectorUI/UserInterface/Images/BackArrow.svg.
3341         * UserInterface/Images/ForwardArrow.svg: Added.
3342         * UserInterface/Images/ForwardArrowLegacy.svg: Copied from Source/WebInspectorUI/UserInterface/Images/ForwardArrow.svg.
3343
3344         * UserInterface/Base/ImageUtilities.js: Updated image version
3345         (.generateImage.generateModernImage):
3346         (.generateImage.generateLegacyImage):
3347         (.generateImage):
3348         Updated image generation to support modern look. Updated versioning scheme and version.
3349
3350         * UserInterface/Base/Main.js:
3351         (WebInspector.loaded):
3352         (WebInspector.contentLoaded.WebInspector.Platform.version.toString):
3353         (WebInspector.contentLoaded.WebInspector.Platform.toString):
3354         (WebInspector.contentLoaded):
3355         Added global platform information.
3356
3357         * UserInterface/Views/ContentBrowser.js:
3358         (WebInspector.ContentBrowser):
3359         Updated back and forward buttons.
3360
3361         * UserInterface/Views/FindBanner.js:
3362         (WebInspector.FindBanner.prototype._generateButtonsGlyphsIfNeeded):
3363         Updated images for the find banner.
3364
3365         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
3366         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
3367         Added new images.
3368
3369         * UserInterface/Views/ButtonToolbarItem.css:
3370         (.toolbar .item.button > .label):
3371         (body.mac-platform.legacy .toolbar .item.button > .label):
3372         * UserInterface/Views/CSSStyleDeclarationSection.css:
3373         (.style-declaration-section):
3374         (body.mac-platform.legacy .style-declaration-section):
3375         (body.mac-platform.legacy .style-declaration-section + .style-declaration-section):
3376         (.style-declaration-section.last-in-group):
3377         (body.mac-platform.legacy .style-declaration-section.last-in-group):
3378         (.style-declaration-section.last-in-group + .style-declaration-section):
3379         (body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section):
3380         (body.mac-platform.legacy .style-declaration-section.last-in-group + .style-declaration-section:last-child):
3381         (.style-declaration-section + .style-declaration-section): Deleted.
3382         (.style-declaration-section.last-in-group + .style-declaration-section:last-child): Deleted.
3383         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
3384         (.sidebar > .panel.details.css-style > .content > .pseudo-classes):
3385         * UserInterface/Views/DOMTreeOutline.css:
3386         (.dom-tree-outline li.hovered:not(.selected) .selection):
3387         (body.mac-platform.legacy .dom-tree-outline li.hovered:not(.selected) .selection):
3388         (.dom-tree-outline li.elements-drag-over .selection):
3389         (body.mac-platform.legacy .dom-tree-outline li.elements-drag-over .selection):
3390         (.dom-tree-outline:focus li.selected .selection):
3391         (body.mac-platform.legacy .dom-tree-outline:focus li.selected .selection):
3392         * UserInterface/Views/DashboardContainerView.css:
3393         (.toolbar .dashboard-container):
3394         (body.mac-platform.legacy .toolbar .dashboard-container):
3395         (body.window-inactive .toolbar .dashboard-container):
3396         (body.mac-platform.legacy.window-inactive .toolbar .dashboard-container):
3397         (.toolbar .dashboard):
3398         (body.window-inactive .toolbar .dashboard):
3399         (body.mac-platform.legacy.window-inactive .toolbar .dashboard):
3400         * UserInterface/Views/DataGrid.css:
3401         (.data-grid th):
3402         (body.mac-platform.legacy .data-grid th):
3403         (.data-grid tr.selected):
3404         (body.mac-platform.legacy .data-grid tr.selected):
3405         (.data-grid:focus tr.selected):
3406         (body.mac-platform.legacy .data-grid:focus tr.selected):
3407         * UserInterface/Views/DetailsSection.css:
3408         (.details-section):
3409         (body.mac-platform.legacy .details-section):
3410         (.details-section .details-section):
3411         (body.mac-platform.legacy .details-section .details-section):
3412         (.details-section .details-section:last-child):
3413         (.details-section .details-section:first-child):
3414         (.details-section > .header):
3415         (body.mac-platform.legacy .details-section > .header):
3416         (.details-section .details-section > .header):
3417         (body.mac-platform.mountain-lion .details-section .details-section > .header):
3418         (.details-section .details-section.collaspsed > .header):
3419         (.details-section.computed-style-properties:not(.collapsed) > .header):
3420         (body.mac-platform.legacy .details-section.computed-style-properties:not(.collapsed) > .header):
3421         (.details-section > .content > .group):
3422         (body.mac-platform.legacy .details-section > .content > .group):
3423         (.details-section > .content > .group:last-child):
3424         (.details-section > .content > .group:nth-child(even)):
3425         (body.mac-platform.legacy .details-section > .content > .group:nth-child(even)):
3426         (body.mac-platform.legacy .details-section > .content > .group:last-child > .row.simple:last-child > *):
3427         (.details-section > .content > .group:last-child > .row.simple:last-child > *): Deleted.
3428         * UserInterface/Views/FilterBar.css:
3429         (.filter-bar > input[type="search"]):
3430         (body.mac-platform.legacy .filter-bar > input[type="search"]):
3431         * UserInterface/Views/NavigationSidebarPanel.css:
3432         (.navigation-sidebar-panel-content-tree-outline .item.selected):
3433         (body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline .item.selected):
3434         (.navigation-sidebar-panel-content-tree-outline:focus .item.selected):
3435         (body.mac-platform.legacy .navigation-sidebar-panel-content-tree-outline:focus .item.selected):
3436         (body.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
3437         (body.mac-platform.legacy.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
3438         * UserInterface/Views/RadioButtonNavigationItem.css:
3439         (.navigation-bar .item.radio.button.text-only.selected):
3440         (body.mac-platform.legacy .navigation-bar .item.radio.button.text-only.selected):
3441         * UserInterface/Views/RulesStyleDetailsPanel.css:
3442         (.sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
3443         (body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .label + .style-declaration-section):
3444         (.sidebar > .panel.details.css-style .rules .new-rule):
3445         (body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule):
3446         (.sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):
3447         (body.mac-platform.legacy .sidebar > .panel.details.css-style .rules .new-rule + .style-declaration-section):
3448         * UserInterface/Views/ScopeBar.css:
3449         (.scope-bar > li):
3450         (body.mac-platform.legacy .scope-bar > li):
3451         (.scope-bar > li.selected):
3452         (body.mac-platform.legacy .scope-bar > li.selected):
3453         * UserInterface/Views/SearchBar.css:
3454         (.search-bar > input[type="search"]):
3455         (body.mac-platform.legacy .search-bar > input[type="search"]):
3456         * UserInterface/Views/Sidebar.css:
3457         (.sidebar):
3458         (body.mac-platform.legacy .sidebar):
3459         (body.mac-platform.legacy.window-inactive .sidebar):
3460         (body.mac-platform.legacy .sidebar.right):
3461         (body.window-inactive .sidebar): Deleted.
3462         (.sidebar.right): Deleted.
3463         * UserInterface/Views/TimelineSidebarPanel.css:
3464         (.sidebar > .panel.navigation.timeline > .title-bar):
3465         (body.mac-platform.legacy .sidebar > .panel.navigation.timeline > .title-bar):
3466         Style updates for new look and feel.
3467
3468 2014-07-11  Joseph Pecoraro  <pecoraro@apple.com>
3469
3470         Web Inspector: Debugger Pause button does not work
3471         https://bugs.webkit.org/show_bug.cgi?id=134785
3472
3473         Reviewed by Timothy Hatcher.
3474
3475         Previously we were automatically resuming if we had no recognized
3476         call frames in the call stack we get when paused. However, we
3477         were accidentally skipping over anonymous scripts instead of
3478         just Web Inspector originated call frames.
3479
3480         Now that we allow anonymous scripts we can step into anonymous
3481         scripts (e.g. evals, new Function(...)) as expected.
3482
3483         Also, remove the condition of automatically resuming if the
3484         call stack was empty. The UI handles this with "No Call Frames".
3485
3486         * UserInterface/Controllers/DebuggerManager.js:
3487         (WebInspector.DebuggerManager.prototype.debuggerDidPause):
3488
3489 2014-07-11  Joseph Pecoraro  <pecoraro@apple.com>
3490
3491         Web Inspector: CSS Autocompletion: "background" only has colors, should support others
3492         https://bugs.webkit.org/show_bug.cgi?id=134839
3493
3494         Reviewed by Timothy Hatcher.
3495
3496         Update and consolidate the background related CSS properties
3497         and include sub-property completions in the shorthand property.
3498
3499         Also take the opportunity to add or update other properties
3500         (-webkit-alt, -webkit-text-decoration-skip, -webkit-aspect-ratio)
3501         and remove unnecessary newlines / commas in the list.
3502
3503         * UserInterface/Models/CSSKeywordCompletions.js:
3504
3505 2014-07-10  Joseph Pecoraro  <pecoraro@apple.com>
3506
3507         Web Inspector: Debugger Continue button is incorrectly sized
3508         https://bugs.webkit.org/show_bug.cgi?id=134786
3509
3510         Reviewed by Timothy Hatcher.
3511
3512         Before this patch everything in the DebuggerDashboardView was flexing.
3513         Normally, if the contents were not too wide, this would just behave
3514         as expected and be centered. If the content was too wide, then each
3515         element would flex uniformly and overlap uniformly. That was not expected.
3516
3517         This patch changes makes everything but the link have a non-flexible
3518         size. If the link (at the end) flexs it will have a nice ellipsis
3519         text truncation, and the rest of the content will be left justified.
3520
3521         This also fixes a few other minor issues seen in the view.
3522
3523         * UserInterface/Views/DebuggerDashboardView.css:
3524         (.dashboard.debugger .navigation-bar):
3525         Reduce the complexity, give the nav bar (the resume button) some simple padding.
3526
3527         (.dashboard.debugger > div):
3528         Make everything non-flex by default.
3529
3530         (.dashboard.debugger > .location):
3531         The location will have an inner element flex, so make it flex.
3532
3533         (.dashboard.debugger > .location > *):
3534         Make everything in .location non-flex by default.
3535
3536         (.dashboard.debugger > .location .go-to-link):
3537         Make the link flex and truncate cleanly.
3538
3539         (.dashboard.debugger > .location .function-name):
3540         Fix vertical alignment when the toolbar has small icons.
3541
3542         * UserInterface/Views/DebuggerDashboardView.js:
3543         (WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
3544         Fix class name spelling.
3545
3546 2014-07-09  Brent Fulgham  <bfulgham@apple.com>
3547
3548         [Win] Remove uses of 'bash' in build system
3549         https://bugs.webkit.org/show_bug.cgi?id=134782
3550         <rdar://problem/17615533>
3551
3552         Reviewed by Dean Jackson.
3553
3554         Remove uses of 'bash' by replacing Windows-specific bash scripts
3555         with Perl equivalents.
3556
3557         * WebInspectorUI.vcxproj/WebInspectorUI.make:
3558         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
3559         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
3560         * WebInspectorUI.vcxproj/build-webinspectorui.pl: Copied from Source/WebInspectorUI/WebInspectorUI.vcxproj/build-webinspectorui.sh.
3561         * WebInspectorUI.vcxproj/build-webinspectorui.sh: Removed.
3562
3563 2014-07-08  Joseph Pecoraro  <pecoraro@apple.com>
3564
3565         Web Inspector: Debugger popovers should not dismiss when mousing over them
3566         https://bugs.webkit.org/show_bug.cgi?id=134687
3567
3568         Reviewed by David Kilzer.
3569
3570         * UserInterface/Views/SourceCodeTextEditor.js:
3571         (WebInspector.SourceCodeTextEditor.prototype._trackPopoverEvents):
3572         Actually install the listeners in the set. Regression from code refactoring in r165052.
3573
3574 2014-07-07  Jonathan Wells  <jonowells@apple.com>
3575
3576         Web Inspector: CSS style declaration editor should ignore empty lines when determining prefix whitespace
3577         https://bugs.webkit.org/show_bug.cgi?id=134704
3578
3579         Reviewed by Joseph Pecoraro.
3580
3581         When checking for zero-length prefix whitespace, completely empty lines are now ignored
3582         as these lines are most often used for organizing rules into groups and often have their
3583         whitespace removed due to trailing whitespace removal conventions.
3584
3585         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
3586
3587 2014-07-07  Joseph Pecoraro  <pecoraro@apple.com>
3588
3589         Web Inspector: Uncaught Exception debugging iOS 7 NetworkAgent.loadResource is unavailable
3590         https://bugs.webkit.org/show_bug.cgi?id=134689
3591
3592         Reviewed by Darin Adler.
3593
3594         Gracefully handle if NetworkAgent.loadResource is unavailable.
3595
3596         * UserInterface/Controllers/SourceMapManager.js:
3597         (WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
3598         * UserInterface/Models/SourceMapResource.js:
3599
3600 2014-07-01  Jonathan Wells  <jonowells@apple.com>
3601
3602         Web Inspector: Hexadecimal color values in all CSS editors are purple when they should be blue
3603         https://bugs.webkit.org/show_bug.cgi?id=133997
3604
3605         Reviewed by Joseph Pecoraro.
3606
3607         CodeMirror 4 removed the style for hex colors from the CSS tokenizer.
3608         Feature has been added to CodeMirrorAdditions.js.
3609
3610         * UserInterface/Views/CodeMirrorAdditions.js: Added hex-color to style for a valid hexadecimal color.
3611         * UserInterface/Views/SyntaxHighlightingDefaultTheme.css: Added selector for hexadecimal color.
3612
3613 2014-06-26  Jono Wells  <jonowells@apple.com>
3614
3615         Web Inspector: Command-/ (slash) now auto-comments code via CodeMirror 4. Should remove as command to pause
3616         https://bugs.webkit.org/show_bug.cgi?id=134313
3617
3618         Reviewed by Timothy Hatcher.
3619
3620         Changed alternate command to pause/resume from command-slash to command-backslash.
3621         Command-slash sets/unsets comments in all code editors.
3622
3623         * UserInterface/Models/KeyboardShortcut.js: Added Backslash.
3624         * UserInterface/Views/DebuggerSidebarPanel.js: Changed pauseOrResumeAlternateKeyboardShortcut to use Backslash instead of Slash.
3625
3626 2014-06-25  Jono Wells  <jonowells@apple.com>
3627
3628         Web Inspector: Rules panel's strikethrough gets confused at -webkit-align-items: flex-start;
3629         https://bugs.webkit.org/show_bug.cgi?id=133515
3630
3631         Reviewed by Timothy Hatcher.
3632
3633         The CSS style declaration text editor uses the author's shortest instance of prefix whitespace
3634         to create an indentation baseline for the style editor. This needs to consider the possibility
3635         that there is no whitespace prefixing one of the rules. Also clarified a FIXME line.
3636
3637         * UserInterface/Views/CSSStyleDeclarationTextEditor.js: Account for zero-length whitespace.
3638
3639 2014-06-25  Dana Burkart  <dburkart@apple.com>
3640
3641         Add support for 5-tuple versioning.
3642
3643         Reviewed by David Farler.
3644
3645         * Configurations/Version.xcconfig:
3646
3647 2014-06-24  Jono Wells  <jonowells@apple.com>
3648
3649         Web Inspector: clicking "Show All Nodes" button throws TypeError
3650         https://bugs.webkit.org/show_bug.cgi?id=133701
3651
3652         Reviewed by Timothy Hatcher.
3653
3654         The method used for isEventWithinDisclosureTriangle needs to consider the possibility that the 
3655         targeted TreeElement isn't contained within the visible DOM, for instance in the case of the
3656         "Show All Nodes" button immediately after it is pressed.
3657
3658         * UserInterface/Views/TreeOutline.js:
3659         (TreeElement.prototype.isEventWithinDisclosureTriangle): Check to make sure TreeElement node is in the visible DOM.
3660
3661 2014-06-24  Jono Wells  <jonowells@apple.com>
3662
3663         Web Inspector: TypeError when hovering over "Show All Nodes" button in the Dom Tree inspector
3664         https://bugs.webkit.org/show_bug.cgi?id=133699
3665
3666         Reviewed by Geoffrey Garen.
3667
3668         The call to element._createTooltipForNode() was failing because element was sometimes not a 
3669         DOMTreeOutline but rather only a TreeElement (in the case of the "Show All Nodes" button specifically).
3670         A check for type fixes this issue.
3671
3672         * UserInterface/Views/DOMTreeOutline.js:
3673         (WebInspector.DOMTreeOutline.prototype._onmousemove): Check for presence of _createTooltipForNode.
3674
3675 2014-06-21  Jono Wells  <jonowells@apple.com>
3676
3677         Web Inspector: UI fonts should pull from system fonts automatically to whatever degree possible
3678         https://bugs.webkit.org/show_bug.cgi?id=133966
3679
3680         Reviewed by Timothy Hatcher.
3681
3682         Updated font families to use -webkit-system-font, and set this on the body to be
3683         inherited. Also made sure that popovers use Menlo as the default. Updated 
3684         autocompletions with system font names.
3685
3686         * UserInterface/Models/CSSKeywordCompletions.js: Updated completions with available system fonts.
3687
3688         * UserInterface/Controllers/CodeMirrorGradientEditingController.css:
3689         * UserInterface/Views/Breakpoint.css:
3690         * UserInterface/Views/ButtonNavigationItem.css:
3691         * UserInterface/Views/ButtonToolbarItem.css:
3692         * UserInterface/Views/CSSStyleDeclarationSection.css:
3693         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
3694         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
3695         * UserInterface/Views/CodeMirrorOverrides.css:
3696         * UserInterface/Views/DataGrid.css:
3697         * UserInterface/Views/DebuggerDashboardView.css:
3698         * UserInterface/Views/DetailsSection.css:
3699         * UserInterface/Views/FindBanner.css:
3700         * UserInterface/Views/GoToLineDialog.css:
3701         * UserInterface/Views/HierarchicalPathComponent.css:
3702         * UserInterface/Views/Main.css:
3703         * UserInterface/Views/NavigationSidebarPanel.css:
3704         * UserInterface/Views/ProbeSetDataGrid.css:
3705         * UserInterface/Views/RulesStyleDetailsPanel.css:
3706         * UserInterface/Views/ScopeBar.css:
3707         * UserInterface/Views/SourceCodeTextEditor.css:
3708         * UserInterface/Views/TimelineDataGrid.css:
3709         * UserInterface/Views/TimelineRuler.css:
3710         * UserInterface/Views/TimelineSidebarPanel.css:
3711         Changes to fonts. Set default font stack to -webkit-system-font, sans-serif. Default size is
3712         11px. Only changes to this default size or changes to the font (to Menlo, monospace usually) remain.
3713
3714 2014-06-21  Joseph Pecoraro  <pecoraro@apple.com>
3715
3716         Web Inspector: Esc in quick console no longer toggles console drawer
3717         https://bugs.webkit.org/show_bug.cgi?id=134068
3718
3719         Reviewed by Timothy Hatcher.
3720
3721         For Escape to toggle console behavior we were relying on the Escape
3722         keyboard event to propagate up to the window and be handled by
3723         QuickConsole's global keyboard shortcut. With CodeMirror 4, all
3724         editors have a default "Esc" key handler to reduce multiple selections
3725         to a single selection. Unfortunately this always prevents default,
3726         which our keyboard shortcut respects and doesn't toggle the console.
3727
3728         Workaround this by putting a specific handler for when a Console
3729         Prompt is empty and the Escape key is triggered. This does not go
3730         through the normal ConsolePrompt delegate because the delegate
3731         is never the QuickConsole, it is actually the JavaScript log.
3732
3733         * UserInterface/Views/ConsolePrompt.js:
3734         (WebInspector.ConsolePrompt):
3735         (WebInspector.ConsolePrompt.prototype.set escapeKeyHandlerWhenEmpty):
3736         (WebInspector.ConsolePrompt.prototype._handleEscapeKey):
3737         * UserInterface/Views/QuickConsole.js:
3738         (WebInspector.QuickConsole.this.prompt.escapeKeyHandlerWhenEmpty):
3739         (WebInspector.QuickConsole):
3740
3741 2014-06-18  James Craig  <jcraig@apple.com>
3742
3743         Web Inspector: AXI: expose aria-relevant
3744         https://bugs.webkit.org/show_bug.cgi?id=130913
3745
3746         Reviewed by Joseph Pecoraro.
3747
3748         Expose ARIA live region relevance in Web Inspector.
3749         E.g. "Live: Assertive (Additions, Text)"
3750
3751         * Localizations/en.lproj/localizedStrings.js: New strings.
3752         * UserInterface/Models/DOMNode.js: One additional property passed.
3753         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: UI updates to support new property.
3754
3755 2014-06-18  Simon Fraser  <simon.fraser@apple.com>
3756
3757         Add rebeccapurple to CSS named color list
3758         https://bugs.webkit.org/show_bug.cgi?id=133804
3759
3760         Reviewed by Jer Noble.
3761         
3762         Add the named color "rebeccapurple" (#639).
3763
3764         * UserInterface/External/CodeMirror/css.js:
3765         * UserInterface/Models/CSSKeywordCompletions.js:
3766         * UserInterface/Models/Color.js:
3767
3768 2014-06-18  Jono Wells  <jonowells@apple.com>
3769
3770         Web Inspector: REGRESSION: Style declaration editor: placeholder misaligned
3771         https://bugs.webkit.org/show_bug.cgi?id=134012
3772
3773         Reviewed by Timothy Hatcher.
3774
3775         Removed a rule needed to align the placeholder for selectors in 
3776         the style declation text editors with no rules declared in
3777         http://trac.webkit.org/changeset/170077. The necessary
3778         rule has been added back to fix the issue.
3779
3780         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
3781         (.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
3782
3783 2014-06-17  Joseph Pecoraro  <pecoraro@apple.com>
3784
3785         Web Inspector: PrettyPrinting regression on "var a=1"
3786         https://bugs.webkit.org/show_bug.cgi?id=134001
3787
3788         Reviewed by Timothy Hatcher.
3789
3790         Previously operators did not get a token type. After a CodeMirror
3791         update they now have a token type of "operator".
3792
3793         * Tools/PrettyPrinting/CodeMirrorFormatters.js:
3794         * UserInterface/Views/CodeMirrorFormatters.js:
3795
3796 2014-06-17  Jono Wells  <jonowells@apple.com>
3797
3798         Web Inspector: Two lines in CSS rule are hidden until resize or click
3799         https://bugs.webkit.org/show_bug.cgi?id=133951
3800
3801         Reviewed by Joseph Pecoraro.
3802
3803         Update to CodeMirror 4.2 fixed the issue.
3804
3805         * Tools/PrettyPrinting/codemirror.js:
3806         * Tools/PrettyPrinting/css.js:
3807         * Tools/PrettyPrinting/javascript.js:
3808         * UserInterface/External/CodeMirror/clojure.js:
3809         * UserInterface/External/CodeMirror/closebrackets.js:
3810         * UserInterface/External/CodeMirror/codemirror.js:
3811         * UserInterface/External/CodeMirror/coffeescript.js:
3812         * UserInterface/External/CodeMirror/comment.js:
3813         * UserInterface/External/CodeMirror/css.js:
3814         * UserInterface/External/CodeMirror/htmlmixed.js:
3815         * UserInterface/External/CodeMirror/javascript.js:
3816         * UserInterface/External/CodeMirror/livescript.js:
3817         * UserInterface/External/CodeMirror/matchbrackets.js:
3818         * UserInterface/External/CodeMirror/overlay.js:
3819         * UserInterface/External/CodeMirror/placeholder.js:
3820         * UserInterface/External/CodeMirror/runmode.js:
3821         * UserInterface/External/CodeMirror/sass.js:
3822         * UserInterface/External/CodeMirror/searchcursor.js:
3823         * UserInterface/External/CodeMirror/sql.js:
3824         * UserInterface/External/CodeMirror/xml.js:
3825         Update CodeMirror 4.1 to CodeMirror 4.2.0.
3826
3827 2014-06-17  Jono Wells  <jonowells@apple.com>
3828
3829         Web Inspector: style declaration editor: visual highlight doesn't match actual selected text
3830         https://bugs.webkit.org/show_bug.cgi?id=133965
3831
3832         Reviewed by Joseph Pecoraro.
3833
3834         Update styles for css style editor to fix highlighting visual mismatch glitch.
3835
3836         * UserInterface/Views/CSSStyleDeclarationTextEditor.css: