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