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