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