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