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