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