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