27a80974fbfef25d55c2b1d4aa378e2840d5552a
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2014-04-08  Timothy Hatcher  <timothy@apple.com>
2
3         Fix corrupt APPLE_IMAGES_LICENSE.rtf after r165676.
4         https://bugs.webkit.org/show_bug.cgi?id=131384
5
6         Reviewed by Joseph Pecoraro.
7
8         * APPLE_IMAGES_LICENSE.rtf:
9
10 2014-04-08  Timothy Hatcher  <timothy@apple.com>
11
12         Clean up old protocol JSON files to better match the latest
13         https://bugs.webkit.org/show_bug.cgi?id=131308
14
15         Reviewed by Joseph Pecoraro.
16
17         * Versions/Inspector-iOS-6.0.json:
18         * Versions/Inspector-iOS-7.0.json:
19
20 2014-04-05  Brian J. Burg  <burg@cs.washington.edu>
21
22         Enable WEB_REPLAY for PLATFORM(MAC)
23         https://bugs.webkit.org/show_bug.cgi?id=130700
24
25         Reviewed by Timothy Hatcher.
26
27         If the ReplayAgent is available, then add an option to toggle between the
28         replay interface and normal Timeline interface from the timeline
29         sidebar panel. The option is available through a context menu item on the
30         sidebar panel's top navigation bar.
31
32         If web replay not available, just show the non-replay interface.
33
34         * Localizations/en.lproj/localizedStrings.js:
35         * UserInterface/Base/Main.js: Add WebInspector.showReplayInterfaceSetting.
36         (WebInspector.loaded):
37
38         * UserInterface/Views/TimelineSidebarPanel.js: Unconditionally create the replay
39         interface elements, but only show them if showReplayInterfaceSetting is enabled.
40         (WebInspector.TimelineSidebarPanel.prototype._updateReplayInterfaceVisibility): Added
41         (WebInspector.TimelineSidebarPanel.prototype._contextMenuNavigationBarOrStatusBar.toggleReplayInterface): Added.
42         (WebInspector.TimelineSidebarPanel.prototype._contextMenuNavigationBarOrStatusBar): Added.
43
44 2014-04-05  Brian J. Burg  <burg@cs.washington.edu>
45
46         Web Inspector: remove unused metrics and commands from the Timeline agent
47         https://bugs.webkit.org/show_bug.cgi?id=131184
48
49         Reviewed by Timothy Hatcher.
50
51         Remove the Memory domain from old protocol versions. Remove enum values
52         BeginFrame and CompositeLayers. Remove arguments to Timeline.start.
53         Remove miscellaneous Timeline commands that no longer exist and were never used.
54
55         * UserInterface/Protocol/Legacy/6.0/InspectorWebBackendCommands.js:
56         * UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js:
57         * Versions/Inspector-iOS-6.0.json:
58         * Versions/Inspector-iOS-7.0.json:
59
60 2014-04-03  Brian J. Burg  <burg@cs.washington.edu>
61
62         Web Inspector: hook up probe samples to TimelineAgent's records
63         https://bugs.webkit.org/show_bug.cgi?id=131127
64
65         Reviewed by Timothy Hatcher.
66
67         * UserInterface/Controllers/TimelineManager.js: Stub out a case for the ProbeSample record type.
68         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
69         (WebInspector.TimelineManager.prototype.eventRecorded):
70
71 2014-04-04  Joseph Pecoraro  <pecoraro@apple.com>
72
73         Web Inspector: JSContext inspection Resource search throws exception
74         https://bugs.webkit.org/show_bug.cgi?id=131253
75
76         Reviewed by Timothy Hatcher.
77
78         Fail gracefully when none of the supported search backends are available.
79         In JSContext inspection the DOM and Page agents are unavailable.
80
81         * UserInterface/Views/ResourceSidebarPanel.js:
82         (WebInspector.ResourceSidebarPanel.prototype.performSearch):
83
84 2014-04-04  Joseph Pecoraro  <pecoraro@apple.com>
85
86         Web Inspector: JSContext inspection - TypeError: null is not an object (evaluating 'contentView.showSourceCode')
87         https://bugs.webkit.org/show_bug.cgi?id=129857
88
89         Reviewed by Timothy Hatcher.
90
91         When inspecting a JSContext, there is no main frame resource, so
92         attempting to show it was resulting in a runtime error.
93         Instead, check to see if there is a main frame resource, fallback
94         to selecting the first tree element.
95
96         * UserInterface/Base/Main.js:
97         (WebInspector.toggleConsoleView):
98         * UserInterface/Views/DebuggerSidebarPanel.js:
99         (WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView):
100         * UserInterface/Views/ResourceSidebarPanel.js:
101         (WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView):
102
103 2014-04-04  Ion Rosca  <rosca@adobe.com>
104
105         [CSS Blending] Add compositing reason for isolation.
106         https://bugs.webkit.org/show_bug.cgi?id=131153
107
108         Reviewed by Joseph Pecoraro.
109
110         * Localizations/en.lproj/localizedStrings.js:
111         * UserInterface/Views/LayerTreeSidebarPanel.js:
112         (WebInspector.LayerTreeSidebarPanel.prototype._populateListOfCompositingReasons):
113
114 2014-04-02  Timothy Hatcher  <timothy@apple.com>
115
116         Remove Input domain from the Web Inspector protocol.
117
118         https://bugs.webkit.org/show_bug.cgi?id=131073
119
120         Reviewed by Joseph Pecoraro.
121
122         * UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js: Updated.
123         * Versions/Inspector-iOS-7.0.json: Removed Input domain.
124
125 2014-04-01  Timothy Hatcher  <timothy@apple.com>
126
127         Remove HeapProfiler from the Web Inspector protocol.
128
129         https://bugs.webkit.org/show_bug.cgi?id=131070
130
131         Reviewed by Joseph Pecoraro.
132
133         * UserInterface/Protocol/Legacy/6.0/InspectorWebBackendCommands.js: Updated.
134         * UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js: Ditto.
135         * Versions/Inspector-iOS-6.0.json: Removed heap related stuff.
136         * Versions/Inspector-iOS-7.0.json: Ditto.
137
138 2014-04-01  Joseph Pecoraro  <pecoraro@apple.com>
139
140         Web Inspector: Remove stale localStorage deletion transition code
141         https://bugs.webkit.org/show_bug.cgi?id=131061
142
143         Reviewed by Timothy Hatcher.
144
145         * UserInterface/Base/ImageUtilities.js:
146         This code has been in for a while. We have transitioned to Web SQL.
147
148 2014-04-01  Zoltan Horvath  <zoltan@webkit.org>
149
150         [CSS Exclusions] Remove exclusions parsing support
151         https://bugs.webkit.org/show_bug.cgi?id=131046
152
153         Reviewed by David Hyatt.
154
155         * UserInterface/Models/CSSKeywordCompletions.js:
156
157 2014-04-01  Timothy Hatcher  <timothy@apple.com>
158
159         Remove the rest of the old Canvas inspection support.
160
161         https://bugs.webkit.org/show_bug.cgi?id=131066
162
163         Reviewed by Joseph Pecoraro.
164
165         * UserInterface/Protocol/Legacy/7.0/InspectorWebBackendCommands.js: Updated.
166         * Versions/Inspector-iOS-7.0.json: Removed Canvas domain.
167
168 2014-03-28  James Craig  <jcraig@apple.com>
169
170         Web Inspector: AXI: support for live regions
171         https://bugs.webkit.org/show_bug.cgi?id=130725
172
173         Reviewed by Timothy Hatcher.
174
175         Initial support for @aria-live, @aria-atomic, and @aria-busy.
176
177         * Localizations/en.lproj/localizedStrings.js:
178         * UserInterface/Models/DOMNode.js:
179         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
180         * UserInterface/Views/Main.css: 
181
182 2014-03-28  Joseph Pecoraro  <pecoraro@apple.com>
183
184         Web Inspector: console.warn is showing as error instead of warning
185         https://bugs.webkit.org/show_bug.cgi?id=130921
186
187         Reviewed by Timothy Hatcher.
188
189         * UserInterface/Models/DefaultDashboard.js:
190         (WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
191         Use our enums instead of hardcoded strings.
192
193 2014-03-28  James Craig  <jcraig@apple.com>
194
195         Web Inspector: AXI: expose what elements get generic "clickable" status
196         https://bugs.webkit.org/show_bug.cgi?id=130721
197
198         Reviewed by Timothy Hatcher.
199
200         Expose ancestor element link to "Click Listener" or generic "Clickable: Yes" if current node has mouse handler.
201
202         * Localizations/en.lproj/localizedStrings.js: New "Mouse Event" string.
203         * UserInterface/Models/DOMNode.js: Added nodeId and mouseEventNodeId.
204         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: UI for new detail row.
205
206 2014-03-27  James Craig  <jcraig@apple.com>
207
208         Web Inspector: AXI: expose selectedChildNodeIds of list boxes, tree controls, etc., and reconcile UI with childNodeIds
209         https://bugs.webkit.org/show_bug.cgi?id=130827
210
211         Reviewed by Timothy Hatcher.
212
213         UI updates for "Selected Item(s)" and "Child(ren)" rows in accessibility node inspector.
214
215         * Localizations/en.lproj/localizedStrings.js:
216         * UserInterface/Models/DOMNode.js:
217         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
218
219 2014-03-27  Antoine Quint  <graouts@webkit.org>
220
221         Web Inspector: clearing the console log doesn't update the activity viewer
222         https://bugs.webkit.org/show_bug.cgi?id=130774
223
224         Reviewed by Joseph Pecoraro.
225
226         Ensure we take the changes made to the ivars into account on the view.
227
228         * UserInterface/Models/DefaultDashboard.js:
229         (WebInspector.DefaultDashboard.prototype._consoleWasCleared):
230
231 2014-03-27  Brent Fulgham  <bfulgham@apple.com>
232
233         [Win] Correct handling of autogenerated WebInspectorUI files
234         https://bugs.webkit.org/show_bug.cgi?id=130846
235
236         Reviewed by Joseph Pecoraro.
237
238         * WebInspectorUI.vcxproj/WebInspectorUIPostBuild.cmd: Files need to be placed in the
239         'Protocol' subdirectory of the WebInspectorUI directory.
240
241 2014-03-25  James Craig  <jcraig@apple.com>
242
243         Web Inspector: AXI: add support for aria-activedescendant and reconcile UI/testing with parentNode
244         https://bugs.webkit.org/show_bug.cgi?id=130712
245
246         Reviewed by Timothy Hatcher.
247
248         Support for @aria-activedescendant; code reuse changes w/ parentNode and activeDescendantNode.
249
250         * Localizations/en.lproj/localizedStrings.js:
251         * UserInterface/Models/DOMNode.js:
252         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
253
254 2014-03-25  Martin Robinson  <mrobinson@igalia.com>
255
256         [GTK] Remove the autotools build
257         https://bugs.webkit.org/show_bug.cgi?id=130717
258
259         Reviewed by Anders Carlsson.
260
261         * GNUmakefile.am: Removed.
262
263 2014-03-24  Timothy Hatcher  <timothy@apple.com>
264
265         Lazy load source code referred to from the source map, instead of when
266         the source code is revealed in the Resources sidebar.
267
268         https://bugs.webkit.org/show_bug.cgi?id=130625
269
270         Reviewed by Joseph Pecoraro.
271
272         * UserInterface/Models/SourceMapResource.js:
273         (WebInspector.SourceMapResource): Set up the type info here so it can be used to
274         dispaly the right icon in the sidebar.
275         (WebInspector.SourceMapResource.prototype.canRequestContentFromBackend): Use _contentRequested.
276         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
277         Reset finished and remove the type change dance we had before.
278         * UserInterface/Views/SourceMapResourceTreeElement.js:
279         (WebInspector.SourceMapResourceTreeElement.prototype.onattach): Removed. Don't request content here.
280
281 2014-03-23  James Craig  <jcraig@apple.com>
282
283         Web Inspector: AXI: add other ARIA one-to-many relationships: owns, flowto, controls.
284         https://bugs.webkit.org/show_bug.cgi?id=130635
285
286         Reviewed by Timothy Hatcher.
287
288         Support for @aria-owns, @aria-controls, and @aria-flowto.
289
290         * Localizations/en.lproj/localizedStrings.js:
291         * UserInterface/Models/DOMNode.js:
292         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
293
294 2014-03-21  James Craig  <jcraig@apple.com>
295
296         Web Inspector: AXI: Expose Accessibility Tree children of the selected node
297         https://bugs.webkit.org/show_bug.cgi?id=130264
298
299         Reviewed by Timothy Hatcher.
300
301         Expose the accessibility tree children (different from DOM children) of the
302         current node in the accessibility node inspector.
303
304         * Localizations/en.lproj/localizedStrings.js: New "Children" string.
305         * UserInterface/Base/DOMUtilities.js: Added linkifyAccessibilityNodeReference.
306         * UserInterface/Models/DOMNode.js: Support for accessibility children.
307         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: Support for accessibility children.
308         * UserInterface/Views/Main.css: New styles for .node-link-list.
309
310 2014-03-20  Brian Burg  <bburg@apple.com>
311
312         Web Inspector: add temporary buttons to capture/play/pause replay recordings
313         https://bugs.webkit.org/show_bug.cgi?id=129692
314
315         Reviewed by Timothy Hatcher.
316
317         If the Replay agent is available, replace the existing ad-hoc navigation bar
318         in the Timelines sidebar panel with a record and pause/play button. This UI
319         is temporary.
320
321         * Localizations/en.lproj/localizedStrings.js:
322         * UserInterface/Controllers/ReplayManager.js: Turn two segment state assertions into
323         FIXMEs because the assertions are too strong until the public API uses async chains.
324         (WebInspector.ReplayManager.prototype.replayToMarkIndex):
325         (WebInspector.ReplayManager.prototype.replayToCompletion):
326         * UserInterface/Images/Circle.svg: Added.
327         * UserInterface/Views/ActivateButtonNavigationItem.js:
328         (WebInspector.ActivateButtonNavigationItem.prototype.generateStyleText):
329         * UserInterface/Views/ButtonNavigationItem.css: Adjust styles so the default style
330         has opacity:1 and the glyph color is darker.
331         (.navigation-bar .item.button.suppress-emboss > .glyph):
332         (.navigation-bar .item.button.suppress-emboss.disabled > .glyph):
333         * UserInterface/Views/ButtonNavigationItem.js:
334         (WebInspector.ButtonNavigationItem.prototype.generateStyleText): Explicitly
335         generate the width and height properties so that separate button instances do
336         not influence the size of each other.
337
338         * UserInterface/Views/TimelineSidebarPanel.js:
339         (WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked):
340         (WebInspector.TimelineSidebarPanel.prototype._replayCaptureButtonClicked):
341         (WebInspector.TimelineSidebarPanel.prototype._replayPauseResumeButtonClicked):
342         (WebInspector.TimelineSidebarPanel.prototype._captureStarted):
343         (WebInspector.TimelineSidebarPanel.prototype._captureStopped):
344         (WebInspector.TimelineSidebarPanel.prototype._playbackStarted):
345         (WebInspector.TimelineSidebarPanel.prototype._playbackPaused):
346
347 2014-03-20  Brian Burg  <bburg@apple.com>
348
349         Web Inspector: add frontend controller and models for replay sessions
350         https://bugs.webkit.org/show_bug.cgi?id=130145
351
352         Reviewed by Joseph Pecoraro.
353
354         Upstream the frontend models and controller for web replay. The replay manager
355         syncs with the backend controller's replay state and replay sessions by using
356         the same state machines and transitions.
357
358         Session and segment models update their data asynchronously using promises.
359
360         * UserInterface/Base/Main.js:
361         (WebInspector.loaded): Add the replay manager.
362         * UserInterface/Base/Test.js:
363         (WebInspector.loaded): Add the replay manager.
364         (InspectorTest.debugLog): Fix a bug in the unescape/escape trick.
365         (InspectorTest.addResult): Don't try to add results until the test page has loaded.
366         (InspectorTest.testPageDidLoad): Clear the isReloading flag.
367         (InspectorTest.reloadPage): Reimplement using promises. Return a promise.
368         * UserInterface/Base/Utilities.js: Implement Map.take in the obvious way.
369         * UserInterface/Controllers/ReplayManager.js: Added.
370         (WebInspector.ReplayManager):
371         (WebInspector):
372         (WebInspector.ReplayManager.prototype.get sessionState):
373         (WebInspector.ReplayManager.prototype.get segmentState):
374         (WebInspector.ReplayManager.prototype.get activeSessionIdentifier):
375         (WebInspector.ReplayManager.prototype.get activeSegmentIdentifier):
376         (WebInspector.ReplayManager.prototype.get playbackSpeed):
377         (WebInspector.ReplayManager.prototype.set playbackSpeed):
378         (WebInspector.ReplayManager.prototype.get currentPosition):
379         (WebInspector.ReplayManager.prototype.getSession.get var):
380         (WebInspector.ReplayManager.prototype.getSegment.get var):
381         (WebInspector.ReplayManager.prototype.captureStarted):
382         (WebInspector.ReplayManager.prototype.captureStopped):
383         (WebInspector.ReplayManager.prototype.playbackStarted):
384         (WebInspector.ReplayManager.prototype.playbackHitPosition):
385         (WebInspector.ReplayManager.prototype.playbackPaused):
386         (WebInspector.ReplayManager.prototype.playbackFinished):
387         (WebInspector.ReplayManager.prototype.sessionCreated.set catch):
388         (WebInspector.ReplayManager.prototype.sessionCreated.this):
389         (WebInspector.ReplayManager.prototype.sessionCreated):
390         (WebInspector.ReplayManager.prototype.sessionModified):
391         (WebInspector.ReplayManager.prototype.sessionRemoved.then):
392         (WebInspector.ReplayManager.prototype.sessionRemoved):
393         (WebInspector.ReplayManager.prototype.segmentCreated.set this):
394         (WebInspector.ReplayManager.prototype.segmentCompleted.set catch):
395         (WebInspector.ReplayManager.prototype.segmentCompleted):
396         (WebInspector.ReplayManager.prototype.segmentRemoved.then):
397         (WebInspector.ReplayManager.prototype.segmentRemoved):
398         (WebInspector.ReplayManager.prototype.segmentLoaded):
399         (WebInspector.ReplayManager.prototype.segmentUnloaded):
400         (WebInspector.ReplayManager.prototype.startCapturing):
401         (WebInspector.ReplayManager.prototype.stopCapturing):
402         (WebInspector.ReplayManager.prototype.replayToMarkIndex):
403         (WebInspector.ReplayManager.prototype.replayToCompletion):
404         (WebInspector.ReplayManager.prototype.pausePlayback):
405         (WebInspector.ReplayManager.prototype.stopPlayback):
406         (WebInspector.ReplayManager.prototype._changeSessionState):
407         (WebInspector.ReplayManager.prototype._changeSegmentState):
408         * UserInterface/Main.html:
409         * UserInterface/Models/ReplaySession.js: Added.
410         (WebInspector.ReplaySession):
411         (WebInspector.ReplaySession.fromPayload):
412         (WebInspector.ReplaySession.prototype.get segments):
413         (WebInspector.ReplaySession.prototype.segmentsChanged):
414         (WebInspector.ReplaySession.prototype._updateFromPayload):
415         * UserInterface/Models/ReplaySessionSegment.js: Added.
416         (WebInspector.IncompleteSessionSegment):
417         (WebInspector.IncompleteSessionSegment.prototype.get isComplete):
418         (WebInspector.ReplaySessionSegment):
419         (WebInspector.ReplaySessionSegment.prototype.get isComplete):
420         * UserInterface/Protocol/InspectorBackend.js:
421         (InspectorBackendClass.prototype.registerCommand):
422         (InspectorBackendClass.prototype._promise): Add a promise-returning method for
423         invoking backend commands that return a result asynchronously.
424         * UserInterface/Protocol/ReplayObserver.js: Added.
425         (WebInspector.ReplayPosition):
426         (WebInspector.ReplayPosition.fromProtocol):
427         (WebInspector.ReplayObserver):
428         (WebInspector.ReplayObserver.prototype.captureStarted):
429         (WebInspector.ReplayObserver.prototype.captureStopped):
430         (WebInspector.ReplayObserver.prototype.playbackStarted):
431         (WebInspector.ReplayObserver.prototype.playbackHitPosition):
432         (WebInspector.ReplayObserver.prototype.playbackPaused):
433         (WebInspector.ReplayObserver.prototype.playbackFinished):
434         (WebInspector.ReplayObserver.prototype.inputSuppressionChanged):
435         (WebInspector.ReplayObserver.prototype.sessionCreated):
436         (WebInspector.ReplayObserver.prototype.sessionModified):
437         (WebInspector.ReplayObserver.prototype.sessionRemoved):
438         (WebInspector.ReplayObserver.prototype.sessionLoaded):
439         (WebInspector.ReplayObserver.prototype.segmentCreated):
440         (WebInspector.ReplayObserver.prototype.segmentRemoved):
441         (WebInspector.ReplayObserver.prototype.segmentCompleted):
442         (WebInspector.ReplayObserver.prototype.segmentLoaded):
443         (WebInspector.ReplayObserver.prototype.segmentUnloaded):
444         * UserInterface/Test.html:
445
446 2014-03-20  Joseph Pecoraro  <pecoraro@apple.com>
447
448         Web Inspector: DebuggerDashboardView looks scrunched debugging JSContext
449         https://bugs.webkit.org/show_bug.cgi?id=130527
450
451         Reviewed by Timothy Hatcher.
452
453         Instead of using body.javascript to force a collapsed style,
454         actually use the toolbar's collapsed class.
455
456         * UserInterface/Views/DashboardContainerView.css:
457         (.toolbar.collapsed .dashboard-container):
458         * UserInterface/Views/Toolbar.js:
459
460 2014-03-20  Katie Madonna  <madonnk@gmail.com>
461
462         Web Inspector: probe sidebar should use overflow:scroll and split space evenly
463         https://bugs.webkit.org/show_bug.cgi?id=129627
464
465         Reviewed by Timothy Hatcher.
466
467         Use flexbox to split space evenly in the probe sidebar, which required changes to collapse
468         format, remove scrollbar styles from old timelapse branch.
469
470         * UserInterface/Views/ProbeDetailsSidebarPanel.css: Space elements evenly with flexbox
471         and make collapse correctly, remove scrollbar style.
472         * UserInterface/Views/ProbeSetDetailsSection.js: Removed inline style.
473
474 2014-03-18  Joseph Pecoraro  <pecoraro@apple.com>
475
476         Web Inspector: Make update-InspectorBackendCommands.rb only update legacy protocol versions
477         https://bugs.webkit.org/show_bug.cgi?id=130412
478
479         Reviewed by Timothy Hatcher.
480
481         Rename the script and simplify to only update Legacy protocol versions.
482
483         * Scripts/update-LegacyInspectorBackendCommands.rb: Renamed from Source/WebInspectorUI/Scripts/update-InspectorBackendCommands.rb.
484
485 2014-03-18  Joseph Pecoraro  <pecoraro@apple.com>
486
487         Web Inspector: sourceMapResourceLoaded expects statusCode parameter
488         https://bugs.webkit.org/show_bug.cgi?id=130377
489
490         Reviewed by Timothy Hatcher.
491
492         * UserInterface/Models/SourceMapResource.js:
493
494 2014-03-17  Joseph Pecoraro  <pecoraro@apple.com>
495
496         Web Inspector: Uncaught Exception in JSContext Inspector
497         https://bugs.webkit.org/show_bug.cgi?id=130368
498
499         Reviewed by Timothy Hatcher.
500
501         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
502         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._accessibilitySupported):
503         Feature check DOMAgent as well as the function.
504
505 2014-03-16  Brian Burg  <bburg@apple.com>
506
507         Web Inspector: vended backend commands file should be generated as part of the build
508         https://bugs.webkit.org/show_bug.cgi?id=130110
509
510         Reviewed by Timothy Hatcher.
511
512         Copy the backend commands generated in other frameworks into our built products directory.
513
514         * Configurations/WebInspectorUIFramework.xcconfig: Set up variables so we can pull backend
515         commands files from the private headers directory of other frameworks.
516         * Scripts/copy-user-interface-resources.sh: Always ditto inspector backend commands.
517         * UserInterface/Protocol/InspectorJSBackendCommands.js: Removed.
518         * UserInterface/Protocol/InspectorWebBackendCommands.js: Removed.
519         * WebInspectorUI.vcxproj/WebInspectorUIPostBuild.cmd: Copy over the generated
520         backend commands files from the other frameworks.
521         * WebInspectorUI.xcodeproj/project.pbxproj: Add JavaScriptCore and WebCore as
522         framework dependencies so Xcode builds them first.
523
524 2014-03-15  David Kilzer  <ddkilzer@apple.com>
525
526         [iOS] Define SYSTEM_VERSION_PREFIX consistently
527         <http://webkit.org/b/130293>
528         <rdar://problem/15926359>
529
530         Reviewed by Dan Bernstein.
531
532         * Configurations/Version.xcconfig:
533         (SYSTEM_VERSION_PREFIX): Sync with
534         Source/WebKit/mac/Version.xcconfig.
535
536 2014-03-14  Maciej Stachowiak  <mjs@apple.com>
537
538         Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
539         https://bugs.webkit.org/show_bug.cgi?id=130276
540         <rdar://problem/16266927>
541
542         Reviewed by Simon Fraser.
543
544         * APPLE_IMAGES_LICENSE.rtf:
545         * UserInterface/Base/DOMUtilities.js:
546         * UserInterface/Models/Color.js:
547         * UserInterface/Views/ConsoleCommand.js:
548         * UserInterface/Views/ConsoleCommandResult.js:
549         * UserInterface/Views/ConsoleGroup.js:
550         * UserInterface/Views/ConsoleMessage.js:
551         * UserInterface/Views/ConsoleMessageImpl.js:
552         * UserInterface/Views/DOMTreeElement.js:
553         * UserInterface/Views/DOMTreeOutline.js:
554         * UserInterface/Views/DOMTreeUpdater.js:
555         * UserInterface/Views/GradientSlider.css:
556         * UserInterface/Views/GradientSlider.js:
557         * UserInterface/Views/TreeOutline.js:
558
559 2014-03-14  Bem Jones-Bey  <bjonesbe@adobe.com>
560
561         [CSS Shapes] Add autocomplete for -webkit-shape-outside
562         https://bugs.webkit.org/show_bug.cgi?id=130268
563
564         Reviewed by Joseph Pecoraro.
565
566         Add completions for -webkit-shape-outside. Also add the box shapes to
567         the possible completions for clip-path.
568
569         * UserInterface/Models/CSSKeywordCompletions.js:
570
571 2014-03-14  Joseph Pecoraro  <pecoraro@apple.com>
572
573         Web Inspector: Update shapes autocompletion suggestions
574         https://bugs.webkit.org/show_bug.cgi?id=130255
575
576         Reviewed by Bem Jones-Bey.
577
578         * UserInterface/Models/CSSKeywordCompletions.js:
579
580 2014-03-14  James Craig  <jcraig@apple.com>
581
582         Web Inspector: AXI: Expose Accessibility Tree parent of the selected node
583         https://bugs.webkit.org/show_bug.cgi?id=129943
584
585         Reviewed by Timothy Hatcher.
586
587         Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
588
589         Web Accessibility Node Inspector now displays a link to the AX parent node,
590         because it's not a 1:1 match with the DOMNode parent.
591
592         * Localizations/en.lproj/localizedStrings.js: new "Parent" string.
593         * UserInterface/Base/DOMUtilities.js: Updating linkifyNodeReference to include role; adding new roleSelectorForNode method.
594         * UserInterface/Models/DOMNode.js: AX Parent support and adding role to DOMNode (will be exposed as AX Parent link and in overlays).
595         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: Accessibility parent node.
596
597 2014-03-14  Diego Pino Garcia  <dpino@igalia.com>
598
599         Web Inspector: Resource and Frame saveIdentityToCookie should store URL hashes not URLs
600         https://bugs.webkit.org/show_bug.cgi?id=126833
601
602         Reviewed by Timothy Hatcher.
603
604         * UserInterface/Models/Frame.js:
605         (WebInspector.Frame.prototype.saveIdentityToCookie):
606         * UserInterface/Models/Resource.js:
607         (WebInspector.Resource.prototype.saveIdentityToCookie):
608
609 2014-03-13  James Craig  <jcraig@apple.com>
610
611         Web Inspector: AXI: Use loc strings for known aria-invalid types
612         https://bugs.webkit.org/show_bug.cgi?id=129952
613
614         Reviewed by Joseph Pecoraro.
615
616         Updating inspector-protocol and UI display values for @aria-invalid.
617
618         Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
619
620         * Localizations/en.lproj/localizedStrings.js: "Grammar" and "Spelling" value strings.
621         * UserInterface/Protocol/InspectorWebBackendCommands.js: New enum for DOM.AccessibilityPropertiesInvalid
622         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: Use enum instead of passing value through directly.
623
624 2014-03-13  Diego Pino Garcia  <dpino@igalia.com>
625
626         Web Inspector: AXI: Expose focused/focusable state in the Accessibility Node Inspector
627         https://bugs.webkit.org/show_bug.cgi?id=129779
628
629         Reviewed by Timothy Hatcher.
630
631         * Localizations/en.lproj/localizedStrings.js: Add label "Focused".
632         * UserInterface/Models/DOMNode.js: Set property "focused" in
633         accessibilityProperties.
634         (WebInspector.DOMNode.prototype.accessibilityProperties): Add row for
635         property "focused".
636         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
637         (WebInspector.DOMNodeDetailsSidebarPanel):
638         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
639         Refresh value of property "focused" in UI.
640
641 2014-03-13  Joseph Pecoraro  <pecoraro@apple.com>
642
643         Web Inspector: Remove InspectorFrontendHost.loadResourceSynchronously
644         https://bugs.webkit.org/show_bug.cgi?id=130217
645
646         Reviewed by Timothy Hatcher.
647
648         * UserInterface/Protocol/InspectorFrontendHostStub.js:
649
650 2014-03-13  Joseph Pecoraro  <pecoraro@apple.com>
651
652         Web Inspector: Network.loadResource should include the response status code
653         https://bugs.webkit.org/show_bug.cgi?id=130216
654
655         Reviewed by Timothy Hatcher.
656
657         * UserInterface/Controllers/SourceMapManager.js:
658         (WebInspector.SourceMapManager.prototype.sourceMapLoaded):
659         (WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
660         * UserInterface/Models/SourceMapResource.js:
661         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
662         If the response is 400 or larger, treat it as an error / failed load.
663
664         * UserInterface/Protocol/InspectorWebBackendCommands.js:
665         Update protocol to provide status code parameter.
666
667 2014-03-12  Brian Burg  <bburg@apple.com>
668
669         Web Inspector: Remove unused callId parameter from evaluateInWebInspector
670         https://bugs.webkit.org/show_bug.cgi?id=129744
671
672         Reviewed by Timothy Hatcher.
673
674         * UserInterface/Protocol/InspectorJSBackendCommands.js:
675         * UserInterface/Protocol/InspectorObserver.js:
676         (WebInspector.InspectorObserver.prototype.evaluateForTestInFrontend):
677
678 2014-03-12  Joseph Pecoraro  <pecoraro@apple.com>
679
680         Web Inspector: [iOS 6] uncaught exception attempting to use CSSAgent.getNamedFlowCollection
681         https://bugs.webkit.org/show_bug.cgi?id=130167
682
683         Reviewed by Timothy Hatcher.
684
685         Feature check the protocol method before using it. It is
686         fine to do nothing if the feature is not supported.
687
688         * UserInterface/Controllers/DOMTreeManager.js:
689
690 2014-03-12  Joseph Pecoraro  <pecoraro@apple.com>
691
692         Web Inspector: Feature check for accessibility support before using it (DOMAgent.getAccessibilityPropertiesForNode)
693         https://bugs.webkit.org/show_bug.cgi?id=130037
694
695         Reviewed by Timothy Hatcher.
696
697         Feature detect if accessibility information is supported before
698         creating or attempting to update the accessibility section.
699
700         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
701         (WebInspector.DOMNodeDetailsSidebarPanel):
702         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._accessibilitySupported):
703         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
704
705 2014-03-12  Joseph Pecoraro  <pecoraro@apple.com>
706
707         Web Inspector: Fix multiple console.assert stripping issues
708         https://bugs.webkit.org/show_bug.cgi?id=130166
709
710         Reviewed by Timothy Hatcher.
711
712         There were a couple console.assert stripping issues in production.
713         One line required a semicolon so was avoiding getting stripped.
714         One resulted in a logic change, when stripping the only statement
715         of a control flow block. Add a warning for such cases.
716
717         * Scripts/remove-console-asserts.pl:
718         Add warning for a console.assert being the only statement in a control flow block
719         without braces. When it is stripped it may change the flow of the function.
720
721         * Scripts/remove-console-asserts-dryrun.rb: Added.
722         Add a script to quickly test running remove console asserts on our files, to
723         help catch errors not in a production build and in the original non-combined
724         files, so you can more easily fix issues.
725
726         * UserInterface/Controllers/DOMTreeManager.js:
727         (WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
728         Convert the for loop into a single console.assert statement.
729
730         * UserInterface/Views/DataGrid.js:
731         (WebInspector.DataGrid.prototype.removeChild):
732         Add missing semicolon.        
733
734 2014-03-12  Brian Burg  <bburg@apple.com>
735
736         Web Inspector: convert model tests and inspector-test.js to use Test.html
737         https://bugs.webkit.org/show_bug.cgi?id=129217
738
739         Reviewed by Timothy Hatcher.
740
741         Miscellaneous changes to make the inspector model test harness work well in
742         scenarios where the test page must navigate or reload. Also improve reporting
743         test failures so that messages will be dumped correctly even when an exception
744         is thrown in the Inspector or the test times out.
745
746         * UserInterface/Base/Test.js:
747         (WebInspector.loaded): register new managers and observers.
748         (InspectorTest.log): Stringify the argument if it's an object.
749         (InspectorTest.assert): Stringify the argument if it's an object. Don't log
750         unless the condition is false.
751
752         (InspectorTest.expectThat): Added. Like assert(), but always logs.
753         (InspectorTest.debugLog): Escape and unescape the string properly.
754         (InspectorTest.completeTest): Fix teardown so messages are not lost.
755         (InspectorTest.evaluateInPage): Accept a callback argument.
756         (InspectorTest.addResult): Don't rebuild results when adding a new result.
757         (InspectorTest._resendResults.decrementPendingResponseCount): Added.
758
759         (InspectorTest._resendResults): Added. Track the number of pending
760         responses and invoke a given callback when everything has been resent.
761
762         (InspectorTest.testPageDidLoad): Renamed from `pageLoaded`.
763         (InspectorTest.reloadPage): Added.
764         (InspectorTest.reportUncaughtException): Prevent the default handler from running.
765         * UserInterface/Protocol/InspectorBackend.js:
766         (InspectorBackendClass.prototype.dispatch): Report uncaught exceptions when dispatching
767         messages on the inspector page without blowing away the entire call stack.
768
769         * UserInterface/Test.html: Add files used by Network and Timeline domains.
770
771 2014-03-11  Brian Burg  <bburg@apple.com>
772
773         Web Inspector: DataGrid should have an API to set sort column and direction
774         https://bugs.webkit.org/show_bug.cgi?id=128783
775
776         Reviewed by Timothy Hatcher.
777
778         Previously there was no way for DataGrid clients to programmatically change
779         the sort order or sort column identifier after the data grid was constructed.
780         This patch modernizes DataGrid sorting by exposing getters and setters for
781         sortOrder and sortColumnIdentifier, which trigger the SortChanged event if
782         the sort settings have changed.
783
784         This patch also modernizes sorting functionality in DataGrid clients, and in
785         a few clients it moves column identifiers from numbers to string identifiers.
786
787         * UserInterface/Main.html:
788         * UserInterface/Views/ApplicationCacheFrameContentView.js: Use string column identifiers
789         instead of numbers. Don't repopulate the entire table when the sort changes, instead
790         call DataGrid.sortNodes from the sorting callback. Explicitly set the sort order.
791
792         (WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):
793         (WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid):
794         (WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid.localeCompare):
795         (WebInspector.ApplicationCacheFrameContentView.prototype._populateDataGrid):
796
797         * UserInterface/Views/CookieStorageContentView.js: Use string column identifiers instead
798         of numbers. Don't sort the cookies themselves, just the data grid nodes representing
799         each cookie. Use DataGrid.sortNodes as the sorting implementation, and provide a
800         comparator. Don't rebuild the entire table when the sort changes.
801
802         (WebInspector.CookieStorageContentView.prototype._rebuildTable):
803         (WebInspector.CookieStorageContentView.prototype._sortDataGrid):
804         (WebInspector.CookieStorageContentView.prototype._sortDataGrid.numberCompare):
805         (WebInspector.CookieStorageContentView.prototype._sortDataGrid.expiresCompare):
806
807         * UserInterface/Views/DataGrid.js: Add the DataGrid.SortOrder enum. Put sortOrder
808         and sortColumnIdentifier behind getters and setters. Pull some hardcoded style
809         class names into constants. Remove the "sort" field on column config objects; instead
810         should use the DataGrid.sortColumnIdentifier setter after construction.
811
812         (WebInspector.DataGrid): Keep sort settings in private variables.
813         (WebInspector.DataGrid.prototype.get sortOrder): Reimplemented.
814         (WebInspector.DataGrid.prototype.get sortColumnIdentifier): Reimplemented.
815         (WebInspector.DataGrid.prototype.moveToNextCell):
816         (WebInspector.DataGrid.prototype._editingCommitted):
817         (WebInspector.DataGrid.prototype.sortNodes): Use requestAnimationFrame to
818         coalesce multiple sort requests within the same draw frame.
819         (WebInspector.DataGrid.prototype._sortNodesCallback):
820         (WebInspector.DataGrid.prototype._headerCellClicked): Use the new sort API.
821         * UserInterface/Views/LayerTreeDataGrid.js: Removed. Unnecessary for performance
822         now that sort requests are coalesced by requestAnimationFrame.
823
824         * UserInterface/Views/LayerTreeSidebarPanel.js: Use DataGrid instead of LayerTreeDataGrid.
825         Hook up the _sortDataGrid method to the built-in DataGrid.sortNodes API.
826
827         (WebInspector.LayerTreeSidebarPanel.prototype._buildDataGridSection):
828         (WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid.comparator):
829         (WebInspector.LayerTreeSidebarPanel.prototype._sortDataGrid):
830         * UserInterface/Views/LayoutTimelineView.js:
831         * UserInterface/Views/LegacyJavaScriptProfileView.js:
832         (WebInspector.LegacyJavaScriptProfileView.prototype._sortProfile):
833         * UserInterface/Views/NetworkTimelineView.js:
834         * UserInterface/Views/ResourceDetailsSidebarPanel.js: Use the DataGrid.sortNodes API.
835         (WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid.sortDataGrid.comparator):
836         (WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid.sortDataGrid):
837         (WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid):
838         * UserInterface/Views/ScriptTimelineView.js:
839         * UserInterface/Views/TimelineDataGrid.js:
840         (WebInspector.TimelineDataGrid.prototype._sortComparator):
841
842 2014-03-10  James Craig  <jcraig@apple.com>
843
844         Web Inspector: AXI: Expose checked/disabled/expanded/pressed/readonly/selected
845         https://bugs.webkit.org/show_bug.cgi?id=129781
846
847         Reviewed by Joseph Pecoraro.
848
849         Enabling several more properties to be exposed in the Accessibility Node Inspector.
850
851         Updated Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
852
853         * Localizations/en.lproj/localizedStrings.js:
854         * UserInterface/Models/DOMNode.js:
855         * UserInterface/Protocol/InspectorWebBackendCommands.js:
856         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
857
858 2014-03-10  Brian Burg  <bburg@apple.com>
859
860         Web Inspector: show a debugging-oriented dashboard when scripts pause
861         https://bugs.webkit.org/show_bug.cgi?id=129913
862
863         Reviewed by Timothy Hatcher.
864
865         Using the dashboard swapping functionality just added, show a debugger dashboard
866         whenever the debugger pauses, and hide it when it resumes. The debugger manager
867         already coalesces pause/resume events across stepping commands.
868
869         The dashboard itself is straightforward, with the exception of how it uses the
870         navigation bar buttons. Since buttons from the same URL can't be reused if they
871         are bezeled, we don't bezel our button, and set the button image as the glyph mask
872         instead of the background image. This lets us easily animate the glyph shape.
873
874         We also have to more forcefully declare a bunch of icon rules that would otherwise
875         be messed up by the toolbar's icon rules (whereas we want to mostly emulate navigation
876         bar icon styles).
877
878         * Localizations/en.lproj/localizedStrings.js:
879         * UserInterface/Base/Main.js:
880         (WebInspector.loaded):
881         (WebInspector.contentLoaded):
882         (WebInspector._debuggerDidPause):
883         (WebInspector._debuggerDidResume):
884         * UserInterface/Controllers/DashboardManager.js:
885         (WebInspector.DashboardManager):
886         * UserInterface/Main.html:
887         * UserInterface/Models/DebuggerDashboard.js: Added.
888         (WebInspector.DebuggerDashboard):
889         * UserInterface/Views/ButtonNavigationItem.css:
890         (.navigation-bar .item.button.suppress-emboss > .glyph):
891         * UserInterface/Views/ButtonNavigationItem.js:
892         (WebInspector.ButtonNavigationItem.prototype._updateImage):
893         * UserInterface/Views/DashboardView.js:
894         (WebInspector.DashboardView):
895         * UserInterface/Views/DebuggerDashboardView.css: Added.
896         (.toolbar .dashboard.debugger):
897         (.dashboard.debugger > .message):
898         (.dashboard.debugger .navigation-bar):
899         (.toolbar:not(.small-size) .dashboard.debugger .navigation-bar):
900         (.dashboard.debugger .navigation-bar .item.button):
901         (.dashboard.debugger .navigation-bar .item.button > .glyph):
902         (@-webkit-keyframes pulse-pause-button):
903         (to):
904         (.dashboard.debugger > .divider):
905         (.dashboard.debugger > div):
906         (.dashboard.debugger > .location > :first-child):
907         (.toolbar:not(.small-size) .dashboard.debugger > .location :not(:first-child)):
908         (.dashboard.debugger > .location img.icon):
909         (.dashboard.debugger > .location .function-name):
910         (.dashboard.debugger > .location .function-name::after):
911         (.dashboard.debugger > .location .go-to-link):
912         (.toolbar.collapsed .dashboard.debugger > :not(.message):not(.navigation-bar )):
913         (.toolbar.small-size .dashboard.debugger > .message):
914         (.toolbar.small-size .dashboard.debugger > .location > :first-child):
915         * UserInterface/Views/DebuggerDashboardView.js: Added.
916         (WebInspector.DebuggerDashboardView):
917         (WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
918         (WebInspector.DebuggerDashboardView.prototype._resumeButtonClicked):
919         * UserInterface/Views/DebuggerSidebarPanel.js:
920         (WebInspector.DebuggerSidebarPanel):
921
922 2014-03-10  Brian Burg  <bburg@apple.com>
923
924         Web Inspector: convert the dashboard toolbar item to support multiple dashboards
925         https://bugs.webkit.org/show_bug.cgi?id=129898
926
927         Reviewed by Timothy Hatcher.
928
929         We want to ability to swap in and out different dashboard contents depending on
930         circumstances such as debugger activity and page loading. This patch converts the
931         existing hard-coded dashboard implementation to follow the container-based approach
932         used by WebInspector.ContentViewContainer.
933
934         As part of the refactoring, we introduce dashboard model objects to store persistent
935         dashboard data. Some CSS has also been split between the container and specific dashboard.
936
937         * UserInterface/Controllers/DashboardManager.js:
938         (WebInspector.DashboardManager):
939         (WebInspector.DashboardManager.prototype.get toolbarItem):
940         * UserInterface/Main.html:
941         * UserInterface/Models/DefaultDashboard.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DashboardManager.js.
942         (WebInspector.DefaultDashboard):
943         (WebInspector.DefaultDashboard.prototype.get resourcesCount):
944         (WebInspector.DefaultDashboard.prototype.set resourcesCount):
945         (WebInspector.DefaultDashboard.prototype.get resourcesSize):
946         (WebInspector.DefaultDashboard.prototype.set resourcesSize):
947         (WebInspector.DefaultDashboard.prototype.get time):
948         (WebInspector.DefaultDashboard.prototype.set time):
949         (WebInspector.DefaultDashboard.prototype.get logs):
950         (WebInspector.DefaultDashboard.prototype.set logs):
951         (WebInspector.DefaultDashboard.prototype.get errors):
952         (WebInspector.DefaultDashboard.prototype.set errors):
953         (WebInspector.DefaultDashboard.prototype.get issues):
954         (WebInspector.DefaultDashboard.prototype.set issues):
955         (WebInspector.DefaultDashboard.prototype._dataDidChange):
956         (WebInspector.DefaultDashboard.prototype._mainResourceDidChange):
957         (WebInspector.DefaultDashboard.prototype._recordingStopped):
958         (WebInspector.DefaultDashboard.prototype._resourceWasAdded):
959         (WebInspector.DefaultDashboard.prototype._frameWasAdded):
960         (WebInspector.DefaultDashboard.prototype._resourceSizeDidChange):
961         (WebInspector.DefaultDashboard.prototype._startUpdatingTime):
962         (WebInspector.DefaultDashboard.prototype._stopUpdatingTime):
963         (WebInspector.DefaultDashboard.prototype._updateTime):
964         (WebInspector.DefaultDashboard.prototype._consoleMessageAdded):
965         (WebInspector.DefaultDashboard.prototype._consoleMessageWasRepeated):
966         (WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
967         (WebInspector.DefaultDashboard.prototype._consoleWasCleared):
968         * UserInterface/Views/DashboardContainerView.css: Added.
969         (.toolbar .dashboard-container):
970         (body.window-inactive .toolbar .dashboard-container):
971         (body.javascript .toolbar .dashboard-container):
972         (.toolbar.normal-size.icon-and-label-vertical .dashboard-container):
973         (.toolbar.small-size.icon-and-label-horizontal .dashboard-container):
974         (.toolbar.normal-size.icon-and-label-horizontal .dashboard-container):
975         (.toolbar .dashboard-container):
976         (.toolbar .dashboard):
977         (.toolbar .dashboard.visible):
978         (.toolbar .dashboard.slide-out-up):
979         (.toolbar .dashboard.slide-out-down):
980         (.toolbar .dashboard.slide-in-up):
981         (.toolbar .dashboard.slide-in-down):
982         (@-webkit-keyframes slide-top-edge):
983         (to):
984         (@-webkit-keyframes slide-bottom-edge):
985         * UserInterface/Views/DashboardContainerView.js: Added.
986         (WebInspector.DashboardContainerView):
987         (WebInspector.DashboardContainerView.prototype.get toolbarItem):
988         (WebInspector.DashboardContainerView.prototype.get currentDashboardView):
989         (WebInspector.DashboardContainerView.prototype.showDashboardViewForRepresentedObject):
990         (WebInspector.DashboardContainerView.prototype._dashboardViewForRepresentedObject):
991         (WebInspector.DashboardContainerView.prototype._showDashboardView):
992         * UserInterface/Views/DashboardView.css: Removed.
993         * UserInterface/Views/DashboardView.js:
994         (WebInspector.DashboardView):
995         (WebInspector.DashboardView.prototype.get element):
996         (WebInspector.DashboardView.prototype.get parentContainer):
997         (WebInspector.DashboardView.prototype.get representedObject):
998         (WebInspector.DashboardView.prototype.shown):
999         (WebInspector.DashboardView.prototype.hidden):
1000         * UserInterface/Views/DefaultDashboardView.css: Added.
1001         (body.web .toolbar.collapsed .dashboard.default > .logs):
1002         (body.javascript .toolbar .dashboard.default > .resourcesCount):
1003         (.toolbar .dashboard.default):
1004         (.toolbar .dashboard.default > .item):
1005         (.toolbar .dashboard.default > .resourcesSize):
1006         (.toolbar .dashboard.default > .item.enabled:hover):
1007         (.toolbar .dashboard.default > .item.enabled:active):
1008         (.toolbar .dashboard.default > .item > *):
1009         (.toolbar .dashboard.default > .item > img):
1010         (.toolbar .dashboard.default > .item.enabled > img):
1011         (.toolbar .dashboard.default > .item.enabled:hover > img):
1012         (.toolbar .dashboard.default > .item > div):
1013         (.toolbar .dashboard.default > .item.enabled > div):
1014         (.toolbar .dashboard.default > .item.enabled:hover > div):
1015         (.toolbar .dashboard.default > .resourcesCount > img):
1016         (.toolbar .dashboard.default > .time > img):
1017         (.toolbar .dashboard.default > .logs > img):
1018         (.toolbar .dashboard.default > .resourcesSize > img):
1019         (.toolbar .dashboard.default > .errors > img):
1020         (.toolbar .dashboard.default > .errors.enabled > img):
1021         (.toolbar .dashboard.default > .errors.enabled:hover > img):
1022         (.toolbar .dashboard.default > .errors.enabled > div):
1023         (.toolbar .dashboard.default > .errors.enabled:hover > div):
1024         (.toolbar .dashboard.default > .issues > img):
1025         (.toolbar .dashboard.default > .issues.enabled > img):
1026         (.toolbar .dashboard.default > .issues.enabled:hover > img):
1027         (.toolbar .dashboard.default > .issues.enabled > div):
1028         (.toolbar .dashboard.default > .issues.enabled:hover > div):
1029         (.toolbar .dashboard.default > .item.pulsing):
1030         (@-webkit-keyframes console-item-pulse):
1031         (.toolbar.small-size.icon-and-label-horizontal .dashboard.default > .item):
1032         (.toolbar.normal-size.icon-and-label-horizontal .dashboard.default > .item):
1033         * UserInterface/Views/DefaultDashboardView.js: Copied from Source/WebInspectorUI/UserInterface/Views/DashboardView.js.
1034         (WebInspector.DefaultDashboardView):
1035         (WebInspector.DefaultDashboardView.prototype._updateDisplay):
1036         (WebInspector.DefaultDashboardView.prototype._formatPossibleLargeNumber):
1037         (WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem.):
1038         (WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem.set item):
1039         (WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem):
1040         (WebInspector.DefaultDashboardView.prototype._itemWasClicked):
1041         (WebInspector.DefaultDashboardView.prototype._resourcesWasClicked):
1042         (WebInspector.DefaultDashboardView.prototype._networkItemWasClicked):
1043         (WebInspector.DefaultDashboardView.prototype._consoleItemWasClicked):
1044         (WebInspector.DefaultDashboardView.prototype.animationEnded):
1045         (WebInspector.DefaultDashboardView.prototype._setConsoleItemValue):
1046         (WebInspector.DefaultDashboardView.prototype._setItemEnabled):
1047
1048 2014-03-08  Joseph Pecoraro  <pecoraro@apple.com>
1049
1050         Web Inspector: update-InspectorBackendCommands.rb is putting legacy protocol files in the wrong place
1051         https://bugs.webkit.org/show_bug.cgi?id=129959
1052
1053         Reviewed by Timothy Hatcher.
1054
1055         The script was putting legacy generated files into UserInterface
1056         instead of UserInterface/Protocol.
1057
1058         * Scripts/update-InspectorBackendCommands.rb:
1059
1060 2014-03-07  Timothy Hatcher  <timothy@apple.com>
1061
1062         Load source maps and their resources asynchronously.
1063
1064         https://bugs.webkit.org/show_bug.cgi?id=112071
1065
1066         Reviewed by Joseph Pecoraro.
1067
1068         * UserInterface/Controllers/SourceMapManager.js:
1069         (WebInspector.SourceMapManager.prototype.loadAndParseSourceMap):
1070         (WebInspector.SourceMapManager.prototype.downloadSourceMap):
1071         (WebInspector.SourceMapManager.prototype.sourceMapLoaded):
1072         (WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
1073         Use NetworkAgent.loadResource.
1074
1075         * UserInterface/Models/SourceMapResource.js:
1076         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
1077         (WebInspector.SourceMapResource.prototype.createSourceCodeTextRange):
1078         Use NetworkAgent.loadResource.
1079
1080         * UserInterface/Protocol/InspectorWebBackendCommands.js: Updated.
1081
1082 2014-03-04  Brian Burg  <bburg@apple.com>
1083
1084         Inspector does not restore breakpoints after a page reload
1085         https://bugs.webkit.org/show_bug.cgi?id=129655
1086
1087         Reviewed by Joseph Pecoraro.
1088
1089         Fix some console asserts that fire when breakpoints resolve.
1090
1091         * UserInterface/Controllers/DebuggerManager.js:
1092         (WebInspector.DebuggerManager.prototype.breakpointResolved):
1093         This had a typo, it should be `breakpoint.identifier`.
1094         (WebInspector.DebuggerManager.prototype.scriptDidParse):
1095         Sometimes the `url` parameter is empty instead of null.
1096
1097 2014-03-04  Diego Pino Garcia  <dpino@igalia.com>
1098
1099         Web Inspector: Remove WebInspector.EventHandler in favor of WebInspector.EventListenerSet
1100         https://bugs.webkit.org/show_bug.cgi?id=129185
1101
1102         Reviewed by Timothy Hatcher.
1103
1104         * UserInterface/Base/EventHandler.js: Removed.
1105         * UserInterface/Main.html: Don't include EventHandler.js.
1106         * UserInterface/Views/SourceCodeTextEditor.js:
1107         (WebInspector.SourceCodeTextEditor.prototype._dismissPopover):
1108         (WebInspector.SourceCodeTextEditor.prototype._trackPopoverEvents):
1109         Use EventListenerSet instead of EventHandler.
1110
1111 2014-03-03  Jonathan Wells  <jonowells@apple.com>
1112
1113         Web Inspector: Match color of regex in source view with a popover
1114         https://bugs.webkit.org/show_bug.cgi?id=129645
1115
1116         Reviewed by Timothy Hatcher.
1117
1118         * UserInterface/Views/LogContentView.css:
1119         (.console-formatted-string):
1120         (.console-formatted-regexp):
1121
1122 2014-03-03  Jonathan Wells  <jonowells@apple.com>
1123
1124         Web Inspector: Better Debugger popovers for RegExp values
1125         https://bugs.webkit.org/show_bug.cgi?id=129633
1126
1127         Reviewed by Timothy Hatcher.
1128
1129         * UserInterface/Views/SourceCodeTextEditor.js:
1130         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression.populate):
1131         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression):
1132         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForRegExp):
1133
1134 2014-03-03  Timothy Hatcher  <timothy@apple.com>
1135
1136         Don't try to parse legacy CSS gradients -- we don't support them.
1137
1138         https://bugs.webkit.org/show_bug.cgi?id=129623
1139
1140         Reviewed by Joseph Pecoraro.
1141
1142         * UserInterface/Models/Gradient.js:
1143         (WebInspector.Gradient.stopsWithComponents): Fix a possible exception on malformed stops.
1144         (WebInspector.LinearGradient.linearGradientWithComponents): Return early for legacy gradients.
1145
1146 2014-03-03  Timothy Hatcher  <timothy@apple.com>
1147
1148         Remove an innocuous error message and support default views for Resource and Debugger sidebars.
1149
1150         https://bugs.webkit.org/show_bug.cgi?id=129622
1151
1152         Reviewed by Joseph Pecoraro.
1153
1154         * UserInterface/Views/DebuggerSidebarPanel.js:
1155         (WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView): Added.
1156         * UserInterface/Views/ResourceSidebarPanel.js:
1157         (WebInspector.ResourceSidebarPanel.prototype.showDefaultContentView): Added.
1158         (WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject): Don't log an error
1159         if the tree element isn't a Script. We try to find any represented object, and it can fail.
1160
1161 2014-03-03  Timothy Hatcher  <timothy@apple.com>
1162
1163         Fix an exception caused by trying to access the DOM before it is loaded.
1164
1165         https://bugs.webkit.org/show_bug.cgi?id=129617
1166
1167         Reviewed by Andreas Kling.
1168
1169         * UserInterface/Base/Main.js:
1170         (WebInspector.loaded): Move global event listeners from here...
1171         (WebInspector.contentLoaded): ... to here.
1172
1173 2014-03-01  Timothy Hatcher  <timothy@apple.com>
1174
1175         Make Start Timeline Recording in the Develop menu show the Timeline view again.
1176
1177         This also fixes a noticeable delay between showing the sidebar and the default Timeline
1178         view when initially opening the Web Inspector to the Timeline.
1179
1180         https://bugs.webkit.org/show_bug.cgi?id=129545
1181
1182         Reviewed by Joseph Pecoraro.
1183
1184         * UserInterface/Base/Main.js:
1185         (WebInspector.contentLoaded): Call TimelineSidebarPanel.initialize to prime the content view.
1186         This is needed so the view is ready in this run loop cycle, where it was delayed before.
1187         * UserInterface/Protocol/InspectorFrontendAPI.js:
1188         (InspectorFrontendAPI.setTimelineProfilingEnabled): Call TimelineSidebarPanel.showTimelineOverview.
1189         * UserInterface/Views/TimelineSidebarPanel.js:
1190         (WebInspector.TimelineSidebarPanel.prototype.initialize): Added.
1191
1192 2014-03-01  Timothy Hatcher  <timothy@apple.com>
1193
1194         Select the Resource navigation sidebar by default when there is no cookie.
1195
1196         https://bugs.webkit.org/show_bug.cgi?id=129544
1197
1198         Reviewed by Joseph Pecoraro.
1199
1200         * UserInterface/Base/Main.js:
1201         (WebInspector._restoreInspectorViewStateFromCookie):
1202
1203 2014-03-01  Timothy Hatcher  <timothy@apple.com>
1204
1205         Label JavaScript forced layouts as such in the Timeline.
1206
1207         https://bugs.webkit.org/show_bug.cgi?id=129546
1208
1209         Reviewed by David Kilzer.
1210
1211         * Localizations/en.lproj/localizedStrings.js: Updated.
1212         * UserInterface/Controllers/TimelineManager.js:
1213         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
1214         (WebInspector.TimelineManager.prototype.eventRecorded):
1215         * UserInterface/Models/LayoutTimelineRecord.js:
1216         (WebInspector.LayoutTimelineRecord.EventType.displayName):
1217         * UserInterface/Views/TimelineRecordTreeElement.js:
1218         (WebInspector.TimelineRecordTreeElement):
1219
1220 2014-02-28  Timothy Hatcher  <timothy@apple.com>
1221
1222         Enable breakpoints when adding a new breakpoint or enabling an existing breakpoint.
1223
1224         This eliminates a multi-step process for the user that can be confusing.
1225
1226         https://bugs.webkit.org/show_bug.cgi?id=129426
1227
1228         Reviewed by Joseph Pecoraro.
1229
1230         * UserInterface/Controllers/DebuggerManager.js:
1231         (WebInspector.DebuggerManager.prototype.set breakpointsEnabled):
1232         (WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange):
1233         * UserInterface/Views/DebuggerSidebarPanel.js:
1234         (WebInspector.DebuggerSidebarPanel):
1235         (WebInspector.DebuggerSidebarPanel.prototype._breakpointsEnabledDidChange):
1236         (WebInspector.DebuggerSidebarPanel.prototype._breakpointsToggleButtonClicked):
1237
1238 2014-02-27  Timothy Hatcher  <timothy@apple.com>
1239
1240         Use a RegExp when when using CodeMirror's SearchCursor.
1241
1242         This avoids doing toLowerCase() on every line of the TextEditor.
1243
1244         https://bugs.webkit.org/show_bug.cgi?id=129463
1245
1246         Reviewed by Joseph Pecoraro.
1247
1248         * UserInterface/Views/TextEditor.js:
1249         (TextEditor.prototype.performSearch): Use a RegExp for query. Pass false for the caseFold
1250         argument, but it is ignored for RegExp searches anyway.
1251
1252 2014-02-27  Brian Burg  <bburg@apple.com>
1253
1254         Web Inspector: model tests should use a special Test.html inspector page
1255         https://bugs.webkit.org/show_bug.cgi?id=129190
1256
1257         Reviewed by Timothy Hatcher.
1258
1259         * UserInterface/Base/Test.js: Added.
1260         (WebInspector.loaded):
1261         (WebInspector.contentLoaded):
1262         (WebInspector.updateDockedState):
1263         (InspectorTest.log):
1264         (InspectorTest.assert):
1265         (InspectorTest.debugLog):
1266         (InspectorTest.completeTest):
1267         (InspectorTest.evaluateInPage):
1268         (InspectorTest.addResult):
1269         (InspectorTest.clearResults):
1270         (InspectorTest.pageLoaded):
1271         (InspectorTest.reportUncaughtException):
1272         (.console.logType):
1273         * UserInterface/Protocol/InspectorBackend.js:
1274         (InspectorBackendClass):
1275         (InspectorBackendClass.prototype.dispatch):
1276         (InspectorBackendClass.prototype.runAfterPendingDispatches):
1277         (InspectorBackendClass.prototype._flushPendingScripts):
1278         * UserInterface/Protocol/InspectorObserver.js:
1279         (WebInspector.InspectorObserver.prototype.evaluateForTestInFrontend):
1280         * UserInterface/Test.html: Added.
1281
1282 2014-02-27  Joseph Pecoraro  <pecoraro@apple.com>
1283
1284         Web Inspector: JSContext inspection should report exceptions in the console
1285         https://bugs.webkit.org/show_bug.cgi?id=128776
1286
1287         Reviewed by Timothy Hatcher.
1288
1289         * UserInterface/ConsoleMessageImpl.js:
1290         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
1291         (WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
1292         (WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
1293         (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
1294         Provide better handling for "[native code]" and legacy "undefined"
1295         call frame URLs. Never linkify these. Also, when showing a link
1296         for an exception, always use the first non-native call frame as
1297         the link location.
1298
1299 2014-02-26  Timothy Hatcher  <timothy@apple.com>
1300
1301         Fix an issue where the Timeline filter scope bars were not applying.
1302
1303         Reviewed by Joseph Pecoraro.
1304
1305         * UserInterface/Views/TimelineDataGrid.js:
1306         (TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters): Use .get() to access the ScopeBar.
1307
1308 2014-02-25  Andreas Kling  <akling@apple.com>
1309
1310         Prune dead code for Web Inspector memory instrumentation.
1311         <https://webkit.org/b/129286>
1312
1313         Reviewed by Sam Weinig.
1314
1315         * UserInterface/Protocol/InspectorWebBackendCommands.js:
1316
1317 2014-02-24  Timothy Hatcher  <timothy@apple.com>
1318
1319         Switch from prefixed CSS gradient to unprefixed.
1320
1321         https://bugs.webkit.org/show_bug.cgi?id=129279
1322
1323         Reviewed by Andreas Kling.
1324
1325         * UserInterface/Views/BreakpointActionView.css:
1326         (.breakpoint-action-append-button):
1327         (.breakpoint-action-remove-button):
1328         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1329         (.css-style-text-editor > .CodeMirror .CodeMirror-lines .color-swatch):
1330         * UserInterface/Views/CompletionSuggestionsView.css:
1331         (.completion-suggestions-container > .item:active):
1332         * UserInterface/Views/DashboardView.css:
1333         (.toolbar .dashboard):
1334         * UserInterface/Views/DataGrid.css:
1335         (.data-grid th):
1336         (.data-grid table.data):
1337         (.data-grid th.sortable:not(.mouse-over-collapser):active):
1338         (.data-grid th.sort-ascending, .data-grid th.sort-descending):
1339         (.data-grid th.sortable.sort-ascending:not(.mouse-over-collapser):active, .data-grid th.sortable.sort-descending:not(.mouse-over-collapser):active):
1340         (body.window-inactive .data-grid th.sort-descending):
1341         * UserInterface/Views/DetailsSection.css:
1342         (.details-section > .header):
1343         (.details-section .details-section > .header):
1344         * UserInterface/Views/DividerNavigationItem.css:
1345         (.navigation-bar .item.divider):
1346         * UserInterface/Views/FindBanner.css:
1347         (.find-banner > button:active:not(:disabled)):
1348         * UserInterface/Views/Main.css:
1349         (#split-content-browser > .navigation-bar):
1350         * UserInterface/Views/NavigationSidebarPanel.css:
1351         (.sidebar > .panel.navigation > .overflow-shadow):
1352         (.navigation-sidebar-panel-content-tree-outline .item.selected):
1353         (.navigation-sidebar-panel-content-tree-outline:focus .item.selected):
1354         (body.window-inactive .navigation-sidebar-panel-content-tree-outline .item.selected):
1355         * UserInterface/Views/ProbeSetDataGrid.css:
1356         (.details-section.probe-set .data-grid > .data-container td.unknown-value):
1357         (.details-section.probe-set .data-grid th):
1358         * UserInterface/Views/RadioButtonNavigationItem.css:
1359         (.navigation-bar .item.radio.button.text-only.selected):
1360         * UserInterface/Views/TextEditor.css:
1361         (.text-editor .bouncy-highlight):
1362         * UserInterface/Views/TimelineContentView.css:
1363         (.content-view.timeline > .view-container > .timeline-view > .data-grid table.data):
1364         * UserInterface/Views/TimelineDataGrid.css:
1365         (.timeline-data-grid-tree-outline .item:hover):
1366         * UserInterface/Views/TimelineRuler.css:
1367         (.timeline-ruler > .header > .divider):
1368         * UserInterface/Views/TimelineSidebarPanel.css:
1369         (.sidebar > .panel.timeline > .title-bar):
1370         (.sidebar > .panel.timeline > .content > .stripe-background):
1371         * UserInterface/Views/Toolbar.css:
1372         (body:not(.mac-platform) .toolbar):
1373         (body.docked.mac-platform.mavericks .toolbar):
1374
1375 2014-02-24  Timothy Hatcher  <timothy@apple.com>
1376
1377         Fix the missing navigation bar in the Debugger sidebar panel.
1378
1379         Sorting the CSS resources caused specificity issue.
1380
1381         https://bugs.webkit.org/show_bug.cgi?id=129251
1382
1383         Reviewed by Joseph Pecoraro.
1384
1385         * UserInterface/Views/DebuggerSidebarPanel.css:
1386         (.sidebar > .panel.navigation.debugger > .content):
1387         (.sidebar > .panel.navigation.debugger > .navigation-bar):
1388         * UserInterface/Views/LayoutTimelineView.css:
1389         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):
1390         * UserInterface/Views/NetworkTimelineView.css:
1391         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle):
1392         * UserInterface/Views/ResourceSidebarPanel.css:
1393         (.sidebar > .panel.navigation.resource > .empty-content-placeholder):
1394         (.sidebar > .panel.navigation.resource > .search-bar):
1395         (.sidebar > .panel.navigation.resource > .search-bar > input[type="search"]):
1396         * UserInterface/Views/ScriptTimelineView.css:
1397         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):
1398         * UserInterface/Views/TimelineSidebarPanel.css:
1399         (.sidebar > .panel.navigation.timeline > .status-bar):
1400         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
1401         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording):
1402         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph:hover):
1403         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording:hover):
1404         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.forced):
1405         (.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph.recording.forced):
1406         (.sidebar > .panel.navigation.timeline > .status-bar > .record-status):
1407         (.sidebar > .panel.navigation.timeline > .title-bar):
1408         (.sidebar > .panel.navigation.timeline > .title-bar.timelines):
1409         (.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
1410         (.sidebar > .panel.navigation.timeline > .timelines-content):
1411         (.sidebar > .panel.navigation.timeline > .timelines-content .close-button):
1412         (.sidebar > .panel.navigation.timeline > .timelines-content li.item .icon):
1413         (.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected .close-button):
1414         (.sidebar > .panel.navigation.timeline > .timelines-content li.item:not(.selected):nth-child(even)):
1415         (.sidebar > .panel.navigation.timeline > .timelines-content li.item:not(.selected):not(:first-child)):
1416         (.sidebar > .panel.navigation.timeline > .timelines-content li.item.selected + li.item):
1417         (.sidebar > .panel.navigation.timeline > .timelines-content :focus li.item.selected + li.item):
1418         (.sidebar > .panel.navigation.timeline > .timelines-content .close-button:active):
1419         (.sidebar > .panel.navigation.timeline > .empty-content-placeholder):
1420         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content):
1421         (.sidebar > .panel.navigation.timeline > .content > .stripe-background):
1422         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content > .stripe-background):
1423
1424 2014-02-24  Timothy Hatcher  <timothy@apple.com>
1425
1426         Give non-Mac platforms a default toolbar background so it isn't just white.
1427
1428         https://bugs.webkit.org/show_bug.cgi?id=129260
1429
1430         Reviewed by Joseph Pecoraro.
1431
1432         * UserInterface/Base/Main.js:
1433         (WebInspector.contentLoaded): Style the boby with platform classes.
1434         * UserInterface/Base/Utilities.js:
1435         (String.prototype.contains): Added.
1436         * UserInterface/Views/Toolbar.css:
1437         (body.docked .toolbar, body:not(.mac-platform) .toolbar): Added. Default toolbar background.
1438         (body.docked.mac-platform.mavericks .toolbar, body.docked.mac-platform.mountain-lion): Added.
1439         (body.mac-platform:not(.docked) .toolbar .item.button > .label): Only apply to Mac.
1440
1441 2014-02-24  Diego Pino Garcia  <dpino@igalia.com>
1442
1443         Web Inspector: Remove single quote characters from Web Inspector JavaScript files
1444         https://bugs.webkit.org/show_bug.cgi?id=129253
1445
1446         Reviewed by Timothy Hatcher.
1447
1448         * UserInterface/Base/Main.js:
1449         (WebInspector.openURL):
1450         * UserInterface/Views/CookieStorageContentView.js:
1451         (WebInspector.cookieDomainMatchesResourceDomain):
1452         * UserInterface/Views/DOMTreeElement.js:
1453         (WebInspector.DOMTreeElement.prototype._insertInLastAttributePosition):
1454         (WebInspector.DOMTreeElement.prototype._startEditingTagName.editingComitted):
1455         (WebInspector.DOMTreeElement.prototype._startEditingTagName.editingCancelled):
1456         (WebInspector.DOMTreeElement.prototype._startEditingTagName):
1457         * UserInterface/Views/DOMTreeOutline.js:
1458         (WebInspector.DOMTreeOutline.prototype._ondragover):
1459         * UserInterface/Views/DataGrid.js:
1460         (WebInspector.DataGrid.prototype.addPlaceholderNode):
1461
1462 2014-02-23  Dan Bernstein  <mitz@apple.com>
1463
1464         Removed -Wno-format-y2k from WARNING_CFLAGS
1465
1466         Rubber-stamped by Sam Weinig.
1467
1468         * Configurations/Base.xcconfig:
1469
1470 2014-02-23  Diego Pino García  <dpino@igalia.com>
1471
1472         [GTK] Fix build after Web Inspector code reorganization (r164543)
1473         https://bugs.webkit.org/show_bug.cgi?id=129231
1474
1475         Reviewed by Dean Jackson.
1476
1477         * GNUmakefile.am:
1478         Modify paths to Web Inspector code.
1479
1480 2014-02-23  Antoine Quint  <graouts@webkit.org>
1481
1482         Web Inspector: color picker sliders aren't laid out correctly
1483         https://bugs.webkit.org/show_bug.cgi?id=129234
1484
1485         Reviewed by Joseph Pecoraro.
1486
1487         While it's unclear to me what happened, the "position" property for the color picker sliders
1488         wasn't being computed as expected and used relative positioning. I assume this is related to
1489         r164543 when the order of CSS files changed.
1490
1491         * UserInterface/Views/Slider.css:
1492         (.slider):
1493
1494 2014-02-22  Dan Bernstein  <mitz@apple.com>
1495
1496         REGRESSION (r164507): Crash beneath JSGlobalObjectInspectorController::reportAPIException at facebook.com, twitter.com, youtube.com
1497         https://bugs.webkit.org/show_bug.cgi?id=129227
1498
1499         Reviewed by Eric Carlson.
1500
1501         Reverted r164507.
1502
1503         * UserInterface/Views/ConsoleMessageImpl.js:
1504         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
1505         (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
1506
1507 2014-02-21  Timothy Hatcher  <timothy@apple.com>
1508
1509         Organize WebInspectorUI/UserInterface into sub-directories.
1510
1511         https://bugs.webkit.org/show_bug.cgi?id=129194
1512
1513         Rubber-stamped by Joseph Pecoraro.
1514
1515         * Scripts/copy-user-interface-resources.sh: Fix Image URLs and Protocol paths.
1516         * UserInterface/Base: Added.
1517         * UserInterface/Controllers: Added.
1518         * UserInterface/Images: Added.
1519         * UserInterface/Main.html: Updated.
1520         * UserInterface/Models Added.
1521         * UserInterface/Protocol Added.
1522         * UserInterface/Views: Added.
1523
1524 2014-02-21  Timothy Hatcher  <timothy@apple.com>
1525
1526         Add inspection user interface for IndexedDB.
1527
1528         https://bugs.webkit.org/show_bug.cgi?id=129162
1529
1530         Reviewed by Joseph Pecoraro.
1531
1532         * Localizations/en.lproj/localizedStrings.js: Updated.
1533         * UserInterface/ContentView.js:
1534         (WebInspector.ContentView):
1535         (WebInspector.ContentView.isViewable):
1536         * UserInterface/IndexedDatabase.js: Added.
1537         (WebInspector.IndexedDatabase):
1538         (WebInspector.IndexedDatabase.prototype.get name):
1539         (WebInspector.IndexedDatabase.prototype.get securityOrigin):
1540         (WebInspector.IndexedDatabase.prototype.get host):
1541         (WebInspector.IndexedDatabase.prototype.get version):
1542         (WebInspector.IndexedDatabase.prototype.get objectStores):
1543         (WebInspector.IndexedDatabase.prototype.saveIdentityToCookie):
1544         * UserInterface/IndexedDatabaseEntryDataGridNode.js: Added.
1545         (WebInspector.IndexedDatabaseEntryDataGridNode):
1546         (WebInspector.IndexedDatabaseEntryDataGridNode.prototype.get entry):
1547         (WebInspector.IndexedDatabaseEntryDataGridNode.prototype.createCellContent):
1548         * UserInterface/IndexedDatabaseHostTreeElement.js: Added.
1549         (WebInspector.IndexedDatabaseHostTreeElement):
1550         (WebInspector.IndexedDatabaseHostTreeElement.prototype.get name):
1551         (WebInspector.IndexedDatabaseHostTreeElement.prototype.get categoryName):
1552         * UserInterface/IndexedDatabaseObjectStore.js: Added.
1553         (WebInspector.IndexedDatabaseObjectStore):
1554         (WebInspector.IndexedDatabaseObjectStore.prototype.get name):
1555         (WebInspector.IndexedDatabaseObjectStore.prototype.get keyPath):
1556         (WebInspector.IndexedDatabaseObjectStore.prototype.get autoIncrement):
1557         (WebInspector.IndexedDatabaseObjectStore.prototype.get parentDatabase):
1558         (WebInspector.IndexedDatabaseObjectStore.prototype.get indexes):
1559         (WebInspector.IndexedDatabaseObjectStore.prototype.saveIdentityToCookie):
1560         (WebInspector.IndexedDatabaseObjectStore.prototype.establishRelationship):
1561         * UserInterface/IndexedDatabaseObjectStoreContentView.css: Added.
1562         (.content-view.indexed-database-object-store > .data-grid):
1563         (.content-view.indexed-database-object-store > .data-grid td .section .header):
1564         (.content-view.indexed-database-object-store > .data-grid td .section .header::before):
1565         (.content-view.indexed-database-object-store > .data-grid td .section .header .title):
1566         (.content-view.indexed-database-object-store > .data-grid table.data):
1567         (.content-view.indexed-database-object-store > .data-grid table.data tr:nth-child(even)):
1568         (.content-view.indexed-database-object-store > .data-grid table.data tr:nth-child(odd)):
1569         (.content-view.indexed-database-object-store > .data-grid table.data tr.filler):
1570         (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .section .header::before):
1571         (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .section.expanded .header::before):
1572         (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .properties-tree li.parent::before):
1573         (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .properties-tree li.parent.expanded::before):
1574         (.content-view.indexed-database-object-store > .data-grid :focus tr.selected td .properties-tree li *):
1575         * UserInterface/IndexedDatabaseObjectStoreContentView.js: Added.
1576         (WebInspector.IndexedDatabaseObjectStoreContentView.displayKeyPath):
1577         (WebInspector.IndexedDatabaseObjectStoreContentView):
1578         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype.closed):
1579         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype.saveToCookie):
1580         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype.updateLayout):
1581         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._reset):
1582         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._dataGridScrolled):
1583         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData.processEntries):
1584         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData):
1585         * UserInterface/IndexedDatabaseObjectStoreIndex.js: Added.
1586         (WebInspector.IndexedDatabaseObjectStoreIndex):
1587         (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get name):
1588         (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get keyPath):
1589         (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get unique):
1590         (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get multiEntry):
1591         (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.get parentObjectStore):
1592         (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.saveIdentityToCookie):
1593         (WebInspector.IndexedDatabaseObjectStoreIndex.prototype.establishRelationship):
1594         * UserInterface/IndexedDatabaseObjectStoreIndexTreeElement.js: Added.
1595         (WebInspector.IndexedDatabaseObjectStoreIndexTreeElement):
1596         (WebInspector.IndexedDatabaseObjectStoreIndexTreeElement.prototype.get objectStoreIndex):
1597         * UserInterface/IndexedDatabaseObjectStoreTreeElement.js: Added.
1598         (WebInspector.IndexedDatabaseObjectStoreTreeElement):
1599         (WebInspector.IndexedDatabaseObjectStoreTreeElement.prototype.get objectStore):
1600         (WebInspector.IndexedDatabaseObjectStoreTreeElement.prototype.oncollapse):
1601         (WebInspector.IndexedDatabaseObjectStoreTreeElement.prototype.onpopulate):
1602         * UserInterface/IndexedDatabaseTreeElement.js: Added.
1603         (WebInspector.IndexedDatabaseTreeElement):
1604         (WebInspector.IndexedDatabaseTreeElement.prototype.get indexedDatabase):
1605         (WebInspector.IndexedDatabaseTreeElement.prototype.oncollapse):
1606         (WebInspector.IndexedDatabaseTreeElement.prototype.onpopulate):
1607         * UserInterface/Main.html:
1608         * UserInterface/Main.js:
1609         (WebInspector.sidebarPanelForRepresentedObject):
1610         * UserInterface/ResourceSidebarPanel.js:
1611         (WebInspector.ResourceSidebarPanel):
1612         (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected):
1613         (WebInspector.ResourceSidebarPanel.prototype._indexedDatabaseWasAdded):
1614         (WebInspector.ResourceSidebarPanel.prototype._storageCleared):
1615         * UserInterface/StorageManager.js:
1616         (WebInspector.StorageManager):
1617         (WebInspector.StorageManager.prototype.initialize):
1618         (WebInspector.StorageManager.prototype.processData):
1619         (WebInspector.StorageManager.prototype.requestIndexedDatabaseData):
1620         (WebInspector.StorageManager.prototype._mainResourceDidChange):
1621         (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processDatabaseNames):
1622         (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processDatabase):
1623         (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded):
1624         (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processObjectStore):
1625         (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processObjectStoreIndex):
1626         (WebInspector.StorageManager.prototype._securityOriginDidChange):
1627         * UserInterface/URLUtilities.js:
1628         (parseSecurityOrigin):
1629
1630 2014-02-22  Antoine Quint  <graouts@webkit.org>
1631
1632         Web Inspector: allow drag-to-adjust on angle input of gradients editor
1633         https://bugs.webkit.org/show_bug.cgi?id=129095
1634
1635         Reviewed by Timothy Hatcher.
1636
1637         Rename CodeMirrorDragToAlterNumberController to CodeMirrorDragToAdjustNumberController and move
1638         the core logic of a drag-to-adjust behavior out of it to a new generic class DragToAdjustController.
1639         We use this new class from CodeMirrorGradientEditingController to provide drag-to-adjust behavior
1640         in the angle input field of the gradient editor and also as a supporting object for the CodeMirror-
1641         specific class.
1642
1643         * UserInterface/CodeMirrorDragToAdjustNumberController.css: Renamed from Source/WebInspectorUI/UserInterface/CodeMirrorDragToAlterNumberController.css.
1644         (.CodeMirror.drag-to-adjust .CodeMirror-lines):
1645
1646         * UserInterface/CodeMirrorDragToAdjustNumberController.js: Added.
1647         Removed the UI logic and use the new DragToAdjustController as a supporting object instead. We implement
1648         the various DragToAdjustController delegate methods in order to customize its behavior to work within the
1649         context of a CodeMirror editor, specifically to prevent activation when the editor is read-only and to
1650         prevent adjustment when the hovered token isn't a number.
1651
1652         (WebInspector.CodeMirrorDragToAdjustNumberController):
1653         (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.get enabled):
1654         (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.set enabled):
1655         (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerActiveStateChanged):
1656         (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanBeActivated):
1657         (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanBeAdjusted):
1658         (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerWasAdjustedByAmount):
1659         (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerDidReset):
1660         (WebInspector.CodeMirrorDragToAdjustNumberController.prototype.dragToAdjustControllerCanAdjustObjectAtPoint):
1661
1662         * UserInterface/CodeMirrorGradientEditingController.css:
1663         (.gradient-editing-controller > label.drag-to-adjust > input):
1664
1665         * UserInterface/CodeMirrorGradientEditingController.js:
1666         Adopt the new DragToAdjustController to make the angle input field value adjustable by dragging.
1667
1668         (WebInspector.CodeMirrorGradientEditingController.prototype.popoverWillPresent):
1669         (WebInspector.CodeMirrorGradientEditingController.prototype.dragToAdjustControllerWasAdjustedByAmount):
1670         (WebInspector.CodeMirrorGradientEditingController.prototype._handleInputEvent):
1671         (WebInspector.CodeMirrorGradientEditingController.prototype._angleInputValueDidChange):
1672
1673         * UserInterface/DragToAdjustController.js: Renamed from Source/WebInspectorUI/UserInterface/CodeMirrorDragToAlterNumberController.js.
1674         New DragToAdjustController class exposing only the core UI logic of a drag-to-adjust behavior in the context
1675         of a DOM element, exposing a few delegation methods to customize the controller's behavior:
1676
1677         - dragToAdjustControllerActiveStateChanged() notifies that the .active property has changed, allowing bringup
1678         and cleanup work to be performed.
1679
1680         - dragToAdjustControllerDidReset() notifies that the various tracking states of the controller have been reset
1681         allowing other state objects used by clients to be cleared.
1682
1683         - dragToAdjustControllerCanBeActivated() is used to check whether the controller may enter the active state upon
1684         first hovering the target element.
1685
1686         - dragToAdjustControllerCanBeAdjusted() is used to check whether adjustment can be performed at the moment when
1687         the user actually is about to engage in a drag-to-adjust interaction.
1688
1689         - dragToAdjustControllerCanAdjustObjectAtPoint() is used to check whether the object at the provided point (mouse
1690         location) is an adjustable value.
1691
1692         - dragToAdjustControllerWasAdjustedByAmount() notifies that there is a new amount to add to the current value
1693         following a drag-to-adjust interaction.
1694
1695         (WebInspector.DragToAdjustController):
1696         (WebInspector.DragToAdjustController.prototype.get element):
1697         (WebInspector.DragToAdjustController.prototype.set element):
1698         (WebInspector.DragToAdjustController.prototype.set enabled):
1699         (WebInspector.DragToAdjustController.prototype.get active):
1700         (WebInspector.DragToAdjustController.prototype.set active):
1701         (WebInspector.DragToAdjustController.prototype.reset):
1702         (WebInspector.DragToAdjustController.prototype.handleEvent):
1703         (WebInspector.DragToAdjustController.prototype._setDragging):
1704         (WebInspector.DragToAdjustController.prototype._setTracksMouseClickAndDrag):
1705         (WebInspector.DragToAdjustController.prototype._modifiersDidChange):
1706         (WebInspector.DragToAdjustController.prototype._mouseMoved):
1707         (WebInspector.DragToAdjustController.prototype._mouseWasPressed):
1708         (WebInspector.DragToAdjustController.prototype._mouseWasDragged):
1709         (WebInspector.DragToAdjustController.prototype._mouseWasReleased):
1710
1711         * UserInterface/Main.html:
1712         Link in new source files.
1713
1714 2014-02-21  Chi Wai Lau  <clau@apple.com>
1715
1716         Web Inspector: Replace binarySearch with lowerBound and upperBound functions
1717         https://bugs.webkit.org/show_bug.cgi?id=118609
1718
1719         Reviewed by Timothy Hatcher.
1720
1721         This makes insertionIndexForObjectInListSortedByFunction work in O(log(n)) time instead of O(n).
1722
1723         * UserInterface/BinarySearch.js: Removed.
1724         * UserInterface/Main.html:
1725         * UserInterface/Utilities.js:
1726         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
1727         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
1728
1729 2014-02-21  Brian Burg  <bburg@apple.com>
1730
1731         Web Inspector: animate breakpoint tree elements when probe samples are received
1732         https://bugs.webkit.org/show_bug.cgi?id=128334
1733
1734         Reviewed by Timothy Hatcher.
1735
1736         * UserInterface/BreakpointIcons.css: Removed, rules migrated to the following file.
1737
1738         * UserInterface/BreakpointTreeElement.css: When we want to animateon top of the
1739         static icon, we set the icon image as the icon element's background, and animate
1740         a span on top of the icon element.
1741
1742         (.breakpoint-exception-icon .icon): Moved.
1743         (.breakpoint-generic-line-icon .icon):
1744         (.breakpoint-generic-line-icon .icon > span): Added.
1745         (.data-updated.breakpoint-generic-line-icon .icon > span): Added.
1746
1747         * UserInterface/BreakpointTreeElement.js:
1748         (WebInspector.BreakpointTreeElement): Rewrite event listener add/remove to use EventListenerSet.
1749         (WebInspector.BreakpointTreeElement.prototype.ondetach): Override to unregister the instance's listeners.
1750         (WebInspector.BreakpointTreeElement.prototype._addProbeSet): Added.
1751         (WebInspector.BreakpointTreeElement.prototype._removeProbeSet): Added.
1752         (WebInspector.BreakpointTreeElement.prototype._probeSetAdded): Added.
1753         (WebInspector.BreakpointTreeElement.prototype._probeSetRemoved): Added.
1754         Add/remove listeners when probe sets change.
1755
1756         (WebInspector.BreakpointTreeElement.prototype._samplesCleared): Listeners should follow
1757         the active data table.
1758
1759         (WebInspector.BreakpointTreeElement.prototype._dataUpdated): Run the animation when probe data changes.
1760         (WebInspector.BreakpointTreeElement.prototype._breakpointLocationDidChange): Fix a listener leak.
1761         * UserInterface/Main.html: Remove BreakpointIcons.css.
1762         * UserInterface/NavigationSidebarPanel.css:
1763         (.navigation-sidebar-panel-content-tree-outline .item .icon): give icons
1764         'position: relative' so child spans can be absolutely positioned.
1765         * UserInterface/ProbeDetailsSidebarPanel.js: Get probeSet out of the event data
1766         container. The probe set used to be passed as the data container itself.
1767         (WebInspector.ProbeDetailsSidebarPanel.prototype._probeSetAdded):
1768         * UserInterface/ProbeManager.js:
1769         (WebInspector.ProbeManager.prototype._breakpointActionsChanged.set get knownProbeIdentifiers):
1770         (WebInspector.ProbeManager.prototype._breakpointActionsChanged):
1771         (WebInspector.ProbeManager.prototype.get _probeSetForBreakpoint.set this):
1772         * UserInterface/ProbeSet.js:
1773         (WebInspector.ProbeSet.prototype.clearSamples): include the old data table as the SamplesCleared event data.
1774         * UserInterface/TextResourceContentView.js:
1775         (WebInspector.TextResourceContentView.prototype._probeSetsChanged):
1776
1777 2014-02-21  Joseph Pecoraro  <pecoraro@apple.com>
1778
1779         Web Inspector: JSContext inspection should report exceptions in the console
1780         https://bugs.webkit.org/show_bug.cgi?id=128776
1781
1782         Reviewed by Timothy Hatcher.
1783
1784         * UserInterface/ConsoleMessageImpl.js:
1785         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
1786         (WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
1787         (WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
1788         (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
1789         Provide better handling for "[native code]" and legacy "undefined"
1790         call frame URLs. Never linkify these. Also, when showing a link
1791         for an exception, always use the first non-native call frame as
1792         the link location.
1793
1794 2014-02-21  Joseph Pecoraro  <pecoraro@apple.com>
1795
1796         Revert r164486, causing a number of test failures.
1797
1798         Unreviewed rollout.
1799
1800 2014-02-21  Joseph Pecoraro  <pecoraro@apple.com>
1801
1802         Web Inspector: JSContext inspection should report exceptions in the console
1803         https://bugs.webkit.org/show_bug.cgi?id=128776
1804
1805         Reviewed by Timothy Hatcher.
1806
1807         * UserInterface/ConsoleMessageImpl.js:
1808         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
1809         (WebInspector.ConsoleMessageImpl.prototype._shouldHideURL):
1810         (WebInspector.ConsoleMessageImpl.prototype._firstNonNativeCallFrame):
1811         (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
1812         Provide better handling for "[native code]" and legacy "undefined"
1813         call frame URLs. Never linkify these. Also, when showing a link
1814         for an exception, always use the first non-native call frame as
1815         the link location.
1816
1817 2014-02-21  Antoine Quint  <graouts@webkit.org>
1818
1819         Web Inspector: scrollbar may appear when selecting a stop in gradient editor
1820         https://bugs.webkit.org/show_bug.cgi?id=129149
1821
1822         Reviewed by Timothy Hatcher.
1823
1824         Ensure the angle input is not focused as we update the size of the gradient editor's
1825         popover content since, if it were, it'd make a scrollbar appear as we animate the
1826         popover's frame to fit its new content.
1827
1828         * UserInterface/CodeMirrorGradientEditingController.js:
1829         (WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopWasSelected):
1830
1831 2014-02-20  Antoine Quint  <graouts@webkit.org>
1832
1833         Web Inspector: rich editing of CSS gradients
1834         https://bugs.webkit.org/show_bug.cgi?id=119686
1835
1836         Reviewed by Timothy Hatcher.
1837
1838         Look for gradient definitions in CSS resources and implement a gradient-specific CodeMirrorEditingController
1839         to edit those CSS gradients. The CodeMirrorGradientEditingController consists of a GradientSlider, a new widget
1840         allowing the editing of gradient stops, a <select> to pick between various gradient types, a text input to edit
1841         the gradient angle (for linear gradients) and finally a ColorPicker when a gradient stop is picked for editing.
1842
1843         * Localizations/en.lproj/localizedStrings.js:
1844         New localized strings for the content of the gradient editing controller popover.
1845
1846         * UserInterface/CodeMirrorAdditions.js:
1847         New .createGradientMarkers() method which, similar to .createColorMarkers(), takes in an optional TextRange, and
1848         looks for all gradients specified in CSS to create TextMarkers with new type WebInspector.TextMarker.Type.Gradient.
1849         In order to fully identify these CSS gradient strings, we implement a tokenizer to look for the final closing
1850         parenthesis since there can be nested opening and closing parentheses as colors are specified for stops.
1851
1852         * UserInterface/CodeMirrorGradientEditingController.css: Added.
1853         (.gradient-editing-controller):
1854         (.gradient-editing-controller.edits-color):
1855         (.gradient-editing-controller.radial-gradient):
1856         (.gradient-editing-controller.edits-color.radial-gradient):
1857         (.gradient-editing-controller select):
1858         (.gradient-editing-controller .gradient-slider):
1859         (.gradient-editing-controller .color-picker):
1860         (.gradient-editing-controller > .color-picker > .slider):
1861         (.gradient-editing-controller > .color-picker > .brightness):
1862         (.gradient-editing-controller > .color-picker > .opacity):
1863         (.gradient-editing-controller > label):
1864         (.gradient-editing-controller.radial-gradient > label):
1865         (.gradient-editing-controller.edits-color > label):
1866         (.gradient-editing-controller > label > input):
1867
1868         * UserInterface/CodeMirrorGradientEditingController.js: Added.
1869         (WebInspector.CodeMirrorGradientEditingController):
1870         (WebInspector.CodeMirrorGradientEditingController.prototype.get initialValue):
1871         (WebInspector.CodeMirrorGradientEditingController.prototype.get cssClassName):
1872         (WebInspector.CodeMirrorGradientEditingController.prototype.get popoverPreferredEdges):
1873         (WebInspector.CodeMirrorGradientEditingController.prototype.popoverTargetFrameWithRects):
1874         (WebInspector.CodeMirrorGradientEditingController.prototype.popoverWillPresent):
1875         (WebInspector.CodeMirrorGradientEditingController.prototype.popoverDidPresent):
1876         Implementation of CodeMirrorEditingController methods meant to be overridden. This allows us
1877         to customize the popover's appearance, mostly to control how it attaches to the gradient
1878         strings in the editor.
1879
1880         (WebInspector.CodeMirrorGradientEditingController.prototype.handleEvent):
1881         Event handler for changes in the <select> governing gradient type and <input> for the angle.
1882
1883         (WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopsDidChange):
1884         Implementation of a GradientSlider delegation method, we use this to update the .text property
1885         in order to propagate the stops change to the editor.
1886
1887         (WebInspector.CodeMirrorGradientEditingController.prototype.gradientSliderStopWasSelected):
1888         Implementation of a GradientSlider delegation method, we use this to control the display of the
1889         ColorPicker used to edit the color of a selected stop.
1890
1891         (WebInspector.CodeMirrorGradientEditingController.prototype._handleInputEvent):
1892         Deal with changes in the <input> for the angle, ensuring we have a "º" string added to the value.
1893
1894         (WebInspector.CodeMirrorGradientEditingController.prototype._handleChangeEvent):
1895         Deal with changes in the <select> for the type, preserving the stops list from one gradient type
1896         to the other. Gradient type-specific information (angle for linear gradients, sizing for radial
1897         gradients) is lost as we toggle between gradient types.
1898
1899         (WebInspector.CodeMirrorGradientEditingController.prototype._colorPickerColorChanged):
1900         Propagate a color change in the ColorPicker to the stop being edited in the GradientSlider and
1901         and update the .text property in order to propagate the stops change to the editor.
1902
1903         (WebInspector.CodeMirrorGradientEditingController.prototype._updateCSSClassForGradientType):
1904         As we toggle the gradient type in ._handleChangeEvent(), update the CSS class used to hide or show
1905         the angle <input> which is only relevant for linear gradients.
1906
1907         * UserInterface/ColorPicker.js:
1908         (WebInspector.ColorPicker):
1909         Adopt the new Checkers.svg file to display the checkers pattern in the background of the opacity slider.
1910
1911         (WebInspector.ColorPicker.prototype.get colorWheel):
1912         Expose the ColorWheel such that it can be sized by ColorPicker clients.
1913
1914         (WebInspector.ColorPicker.prototype._updateColor):
1915         Drive-by fix for a bug where we'd attempt to use the RGB components of a color to get the alpha-aware version
1916         of the color even though the base format was HSL.
1917
1918         * UserInterface/Gradient.js: Added.
1919         Parser for gradient strings as passed from the CodeMirror .createGradientMarkers() extension method. In the case
1920         of linear gradients, we parse all values, save for lengths, and in the case of radial gradients, we preserve the
1921         sizing information as a string and parse only the gradient stops as the sizing information is only useful to show
1922         in an editor if attached to an element with metrics.
1923         
1924         Since instances of Gradient are used as the .value property of CodeMirrorGradientEditingController, we implement
1925         the required .copy() and .toString() methods. The .toString() implementations are aware of default values for angles
1926         and color stop offsets and only print those as necessary and use shorthands when possible.
1927
1928         (WebInspector.Gradient.fromString):
1929         (WebInspector.Gradient.stopsWithComponents):
1930         (WebInspector.Gradient.stringFromStops):
1931         (WebInspector.LinearGradient):
1932         (WebInspector.LinearGradient.linearGradientWithComponents):
1933         (WebInspector.LinearGradient.prototype.copy):
1934         (WebInspector.LinearGradient.prototype.toString):
1935         (WebInspector.RadialGradient):
1936         (WebInspector.RadialGradient.radialGradientWithComponents):
1937         (WebInspector.RadialGradient.prototype.copy):
1938         (WebInspector.RadialGradient.prototype.toString):
1939
1940         * UserInterface/GradientSlider.css: Added.
1941         (.gradient-slider):
1942         (.gradient-slider > canvas):
1943         (.gradient-slider > .add-area):
1944         (.gradient-slider-knob):
1945         (.gradient-slider-knob.shadow):
1946         (.gradient-slider-knob.selected):
1947         (.gradient-slider-knob.detaching):
1948         (.gradient-slider-knob.fade-out):
1949         (.gradient-slider-knob > div):
1950         (.gradient-slider-knob > img):
1951
1952         * UserInterface/GradientSlider.js: Added.
1953         Widget used to edit a list of stops for a gradient, linear or radial. The widget features a <canvas> element
1954         that draws the gradient as a linear gradient from left to right with checkers in the background to correctly
1955         display transparent colors. Attached to this background, individual knobs are shown for each stop in the provided
1956         stops array. These knobs can be dragged from left to right to change the matching stop offset, but also down to
1957         detach the knob and remove this stop. Additionally, knobs can be clicked to toggle their selected state, where only
1958         one knob can be selected at a time. The Esc. key is used to remove selection of the currently selected knob.
1959
1960         (WebInspector.GradientSlider):
1961         (WebInspector.GradientSlider.prototype.get element):
1962         (WebInspector.GradientSlider.prototype.get stops):
1963         (WebInspector.GradientSlider.prototype.set stops):
1964         (WebInspector.GradientSlider.prototype.get selectedStop):
1965         (WebInspector.GradientSlider.prototype.handleEvent):
1966         (WebInspector.GradientSlider.prototype.handleKeydownEvent):
1967         (WebInspector.GradientSlider.prototype.knobXDidChange):
1968         (WebInspector.GradientSlider.prototype.knobCanDetach):
1969         (WebInspector.GradientSlider.prototype.knobWillDetach):
1970         (WebInspector.GradientSlider.prototype.knobSelectionChanged):
1971         (WebInspector.GradientSlider.prototype._handleMouseover):
1972         (WebInspector.GradientSlider.prototype._handleMousemove):
1973         (WebInspector.GradientSlider.prototype._handleMouseout):
1974         (WebInspector.GradientSlider.prototype._handleClick):
1975         (WebInspector.GradientSlider.prototype._updateShadowKnob):
1976         (WebInspector.GradientSlider.prototype._sortStops):
1977         (WebInspector.GradientSlider.prototype._updateStops):
1978         (WebInspector.GradientSlider.prototype._updateCanvas):
1979         (WebInspector.GradientSlider.prototype._updateKnobs):
1980         (WebInspector.GradientSliderKnob):
1981         (WebInspector.GradientSliderKnob.prototype.get element):
1982         (WebInspector.GradientSliderKnob.prototype.get stop):
1983         (WebInspector.GradientSliderKnob.prototype.set stop):
1984         (WebInspector.GradientSliderKnob.prototype.get x):
1985         (WebInspector.GradientSliderKnob.prototype.set x):
1986         (WebInspector.GradientSliderKnob.prototype.get y):
1987         (WebInspector.GradientSliderKnob.prototype.set y):
1988         (WebInspector.GradientSliderKnob.prototype.get wellColor):
1989         (WebInspector.GradientSliderKnob.prototype.set wellColor):
1990         (WebInspector.GradientSliderKnob.prototype.get selected):
1991         (WebInspector.GradientSliderKnob.prototype.set selected):
1992         (WebInspector.GradientSliderKnob.prototype.handleEvent):
1993         (WebInspector.GradientSliderKnob.prototype._handleMousedown):
1994         (WebInspector.GradientSliderKnob.prototype._handleMousemove):
1995         (WebInspector.GradientSliderKnob.prototype._handleMouseup):
1996         (WebInspector.GradientSliderKnob.prototype._handleTransitionEnd):
1997         (WebInspector.GradientSliderKnob.prototype._updateTransform):
1998
1999         * UserInterface/Images/Checkers.svg: Added.
2000         New asset to draw checkers for color wells.
2001
2002         * UserInterface/Images/GradientStop.png: Added.
2003         * UserInterface/Images/GradientStop@2x.png: Added.
2004         * UserInterface/Images/GradientStopSelected.png: Added.
2005         * UserInterface/Images/GradientStopSelected@2x.png: Added.
2006         New assets used by the gradient slider.
2007
2008         * UserInterface/Main.html:
2009         Link to the new source files.
2010
2011         * UserInterface/SourceCodeTextEditor.js:
2012         (WebInspector.SourceCodeTextEditor.prototype._updateEditableMarkers):
2013         Add a call to .createGradientMarkers() such that we support editing of CSS gradients in such editors.
2014
2015         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
2016         Also recognize gradient markers as valid editable markers.
2017
2018         * UserInterface/TextEditor.js:
2019         (WebInspector.TextEditor.prototype.createGradientMarkers):
2020         Wrapper for the CodeMirror extension method .createGradientMarkers() such that it may be used by subclasses
2021         that have no knowledge of CodeMirror.
2022
2023         (WebInspector.TextEditor.prototype.editingControllerForMarker):
2024         Return a CodeMirrorGradientEditingController for TextMarkers with WebInspector.TextMarker.Type.Gradient type.
2025
2026         * UserInterface/TextMarker.js:
2027         Add the WebInspector.TextMarker.Type.Gradient type.
2028
2029 2014-02-20  Antoine Quint  <graouts@webkit.org>
2030
2031         Web Inspector: create a CodeMirrorEditingController superclass
2032         https://bugs.webkit.org/show_bug.cgi?id=129094
2033
2034         Reviewed by Timothy Hatcher.
2035
2036         Take code that is generic to editing of any text marker out of CodeMirrorColorEditingController to
2037         create a new CodeMirrorEditingController superclass that'll be fit to use for future editing controllers.
2038         Additioanlly, we fix existing issues with such editing by supporting text markers spread across several
2039         lines and more robustly handling the Esc. key being pressed to dismiss a controller's popover.
2040
2041         * UserInterface/CSSStyleDeclarationTextEditor.js:
2042         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createColorSwatches):
2043         Adopt the new .createColorMarkers() method signature to provide a TextRange parameter rather than a single
2044         line number.
2045
2046         * UserInterface/CodeMirrorAdditions.js:
2047         Remove the .boundsForRange() method in favor of a .rectsForRange() method which will allow us to draw better
2048         menus when hovering over a text range by providing tight bounds rather than a large box. We also handle any
2049         line wrapping produced by CodeMirror and remove any leading white-space so that the rects are tight to the
2050         actual characters in the text marker.
2051
2052         We also change .createColorMarkers() to take in a TextRange parameter rather than a line number in order to
2053         better deal with text markers spread across multiple lines.
2054
2055         * UserInterface/CodeMirrorColorEditingController.js:
2056         Remove any code that is adequate for any editing controller (which is moving to CodeMirrorEditingController).
2057         We also adopt new interfaces exposed by CodeMirrorEditingController.
2058
2059         (WebInspector.CodeMirrorColorEditingController):
2060         (WebInspector.CodeMirrorColorEditingController.prototype.get initialValue):
2061         (WebInspector.CodeMirrorColorEditingController.prototype.get cssClassName):
2062         (WebInspector.CodeMirrorColorEditingController.prototype.popoverWillPresent):
2063         (WebInspector.CodeMirrorColorEditingController.prototype.popoverDidPresent):
2064         (WebInspector.CodeMirrorColorEditingController.prototype._colorPickerColorChanged):
2065
2066         * UserInterface/CodeMirrorEditingController.js: Copied from Source/WebInspectorUI/UserInterface/CodeMirrorColorEditingController.js.
2067         New class meant to be subclassed by any future editing controller, and already subclassed by
2068         CodeMirrorColorEditingController. This class exposes several hooks for subclasses to customize its behavior:
2069         
2070         .initialValue: a value we can revert to if the editing is canceled
2071         .cssClassName: a CSS class name that can be added to the editing controller's container
2072         .popoverPreferredEdges: a list of preferredEdges as passed to Popover.prototype.present() with a sensible default
2073         .popoverTargetFrameWithRects: a targetFrame passed to Popover.prototype.present(), defaults to a union of provided rects
2074         .popoverWillPresent: called as the popover is about to be presented, typically overridden to set the popover's content
2075         .popoverDidPresent: called as the popover just was presented, typically overridden when content needs to tuned only after
2076         being added to the DOM and setting of the necessary machinery to update the serialized value in the editor based on interaction
2077         within the popover without changing the serialized value upon showing the popover the very first time.
2078         
2079         Additionally, the .value property must be an object supporting .toString() and .copy() method.
2080
2081         Finally, the .editingControllerDidStartEditing() and .editingControllerDidFinishEditing() delegate methods are fired
2082         as editing begins and finishes. 
2083
2084         (WebInspector.CodeMirrorEditingController):
2085         (WebInspector.CodeMirrorEditingController.prototype.get marker):
2086         (WebInspector.CodeMirrorEditingController.prototype.get range):
2087         (WebInspector.CodeMirrorEditingController.prototype.get value):
2088         (WebInspector.CodeMirrorEditingController.prototype.set value):
2089         (WebInspector.CodeMirrorEditingController.prototype.get delegate):
2090         (WebInspector.CodeMirrorEditingController.prototype.set delegate):
2091         (WebInspector.CodeMirrorEditingController.prototype.get text):
2092         (WebInspector.CodeMirrorEditingController.prototype.set text):
2093         (WebInspector.CodeMirrorEditingController.prototype.get initialValue):
2094         (WebInspector.CodeMirrorEditingController.prototype.get cssClassName):
2095         (WebInspector.CodeMirrorEditingController.prototype.get popover):
2096         (WebInspector.CodeMirrorEditingController.prototype.get popoverPreferredEdges):
2097         (WebInspector.CodeMirrorEditingController.prototype.popoverTargetFrameWithRects):
2098         (WebInspector.CodeMirrorEditingController.prototype.presentHoverMenu):
2099         (WebInspector.CodeMirrorEditingController.prototype.dismissHoverMenu):
2100         (WebInspector.CodeMirrorEditingController.prototype.popoverWillPresent):
2101         (WebInspector.CodeMirrorEditingController.prototype.popoverDidPresent):
2102
2103         (WebInspector.CodeMirrorEditingController.prototype.handleKeydownEvent):
2104         Event handler for keydown events as registered via the new WebInspector.addWindowKeydownListener() method.
2105
2106         (WebInspector.CodeMirrorEditingController.prototype.hoverMenuButtonWasPressed):
2107         (WebInspector.CodeMirrorEditingController.prototype.didDismissPopover):
2108
2109         * UserInterface/Geometry.js:
2110         (WebInspector.Rect.unionOfRects):
2111         (WebInspector.Rect.prototype.unionWithRect):
2112         New utilities to get a Rect that is the union of the provided Rect or array of Rects.
2113
2114         (WebInspector.Polygon):
2115         (WebInspector.Polygon.prototype.bounds):
2116         New class used to store a list of points for a polygon and get its bounds, used by the HoverMenu class.
2117
2118         * UserInterface/HoverMenu.css:
2119         (.hover-menu):
2120         (.hover-menu > svg):
2121         (.hover-menu > svg > rect):
2122         (.hover-menu > img):
2123
2124         * UserInterface/HoverMenu.js:
2125         We remove the assumption that a HoverMenu is only used to draw a single rounded rect based on a simple
2126         Rect and instead support presentation based on an array of Rects where we either:
2127         
2128         - draw a single rounded rectangle if there is only a single Rect provided
2129         - draw two disconnected open-ended rects if we're provided with two non-overlapping Rects
2130         - draw a polygon surrounding all provided Rects in all other cases
2131
2132         No matter how the HoverMenu is drawn, the drawing is performed in SVG with either <rect> or a <path> elements.
2133
2134         (WebInspector.HoverMenu):
2135         (WebInspector.HoverMenu.prototype.present):
2136         (WebInspector.HoverMenu.prototype.dismiss):
2137         (WebInspector.HoverMenu.prototype.handleEvent):
2138         (WebInspector.HoverMenu.prototype._handleClickEvent):
2139         (WebInspector.HoverMenu.prototype._drawOutline):
2140         (WebInspector.HoverMenu.prototype._addRect):
2141         (WebInspector.HoverMenu.prototype._addPath):
2142         (WebInspector.HoverMenu.prototype._drawSingleLine):
2143         (WebInspector.HoverMenu.prototype._drawTwoNonOverlappingLines):
2144         (WebInspector.HoverMenu.prototype._drawOverlappingLines):
2145
2146         * UserInterface/Main.html:
2147         Link to the new CodeMirrorEditingController class.
2148
2149         * UserInterface/Main.js:
2150         Expose a new mechanism to deal with window-level handling of keydown events in order to allow
2151         a list of handlers to accept or reject dealing with the provided keydown event based on the order
2152         they were registered, in most recent to oldest registered handler. This allows, for instance, for
2153         a more graceful handling of the Esc. key being pressed in the CodeMirrorEditingController and
2154         bypasses the DOM structure allowing for objects managing elements in different DOM hierarchies
2155         to compete with handling of keydown events.
2156
2157         (WebInspector.loaded):
2158         (WebInspector.addWindowKeydownListener):
2159         (WebInspector.removeWindowKeydownListener):
2160         (WebInspector._updateWindowKeydownListener):
2161         (WebInspector._sharedWindowKeydownListener):
2162
2163         * UserInterface/SourceCodeTextEditor.css:
2164         (.hover-menu.color > img):
2165         Update the offset applied to a HoverMenu button based on the change of layout for such buttons which
2166         are now absolutely positioned in code by HoverMenu rather than being laid out using the flex-box model.
2167
2168         * UserInterface/SourceCodeTextEditor.js:
2169         Abstrct away the assumption that only a color editing controller may be used to edit text markers in
2170         a source code text editor.
2171
2172         (WebInspector.SourceCodeTextEditor.prototype.hidden):
2173         Ensure we remove any currently-displayed hover menu for an editing controller when the editor is hidden.
2174         This would happen in the situation where a keyboard shortcut was used to jump to another part of the
2175         Web Inspector UI without using the mouse.
2176
2177         (WebInspector.SourceCodeTextEditor.prototype.contentDidChange):
2178         Since we're now working with text ranges rather than lines, remove the code where we'd work out a set of
2179         changed lines and call ._updateEditableMarkers() with the changed range directly instead.
2180
2181         (WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
2182         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
2183         (WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerMouseOutOfHoveredMarker):
2184         Adopt the more generic method names rather than color-specific ones.
2185
2186         (WebInspector.SourceCodeTextEditor.prototype._showPopover):
2187         When showing the popover outside of the use of a CodeMirrorEditingController, such as a JavaScript expression
2188         when debugging, also deal with the possibility of the highlighted range containing multiple lines rather
2189         than assume a single line.
2190
2191         (WebInspector.SourceCodeTextEditor.prototype._updateEditableMarkers):
2192         More generic method name to support future, non-color editing controllers.
2193
2194         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
2195         Find the outermost marker in the list of markers provided such that a marker containing other markers
2196         shows the UI for the containing marker. For instance, a gradient marker would contain several color
2197         markers and it's preferable to show the editing UI for the whole gradient rather than a specific color.
2198
2199         Additionally, adopt more generic ivars and method names to support future, non-color editing controllers.
2200
2201         (WebInspector.SourceCodeTextEditor.prototype._dismissEditingController):
2202         Support for new parameter instructing that the editing controller dismissal should be instant rather than
2203         animated, which is the default. This is useful when, for instance, the text editor is cleared.
2204
2205         (WebInspector.SourceCodeTextEditor.prototype.editingControllerDidStartEditing):
2206         (WebInspector.SourceCodeTextEditor.prototype.editingControllerDidFinishEditing):
2207         Adopt the more generic method names rather than color-specific ones.
2208
2209         * UserInterface/TextEditor.js:
2210         (WebInspector.TextEditor.prototype.rectsForRange):
2211         Remove .boundsForRange() in favor of this new method where we return a series of rects so that we may
2212         draw a more pleasing HoverMenu.
2213
2214         (WebInspector.TextEditor.prototype.createColorMarkers):
2215         Use a TextRanger rather than a single line number to match the underlying CodeMirror extension method.
2216
2217         (WebInspector.TextEditor.prototype.editingControllerForMarker):
2218         Use the provided TextMarker's type to provide the most adequate CodeMirrorEditingController class.
2219
2220         * UserInterface/TextMarker.js:
2221         (WebInspector.TextMarker.prototype.get rects):
2222         Remove the .bounds property in favor of .rects to match the underlying CodeMirror extension method.
2223
2224 2014-02-20  Antoine Quint  <graouts@webkit.org>
2225
2226         Web Inspector: Popover should animate its frame to display its refreshed content
2227         https://bugs.webkit.org/show_bug.cgi?id=129088
2228
2229         Reviewed by Timothy Hatcher.
2230
2231         When calling .update(), we now check whether we can animate the change of frame provided the
2232         new computed frame to best fit the current content still matches the edge the popover uses
2233         to attach to the target frame. If we find that we can do so, we animate the background frame
2234         of the popover while ensuring the anchor point remains stable during the animation such that
2235         only the popover's frame seems to animate.
2236
2237         * UserInterface/Geometry.js:
2238         (WebInspector.Rect.prototype.round):
2239         Returns a new Rect with rounded values, using a floor for the position and a ceil for the size.
2240
2241         * UserInterface/Main.html:
2242         Link to the new UnitBezier.js source file.
2243
2244         * UserInterface/Popover.js:
2245         (WebInspector.Popover):
2246         Make ._anchorPoint an ivar such that we don't need to pass a reference to the anchorPoint into
2247         the various calls leading to an update of the popover's background drawing.
2248
2249         (WebInspector.Popover.prototype.set frame):
2250         We no longer round the values of the frame here, instead calling the new .round() method on Rect
2251         in places where we compute a new frame.
2252
2253         (WebInspector.Popover.prototype.set content):
2254         (WebInspector.Popover.prototype.update):
2255         Update the calls to ._update() to set the new shouldAnimate flag to true in situations where the
2256         popover is already visible.
2257
2258         (WebInspector.Popover.prototype._update):
2259         In the situation where there is a preference to animate the frame, as set by the new shouldAnimate
2260         parameter, check that we can indeed animate by ensuring that the edge the popover uses to attach to
2261         the target frame remains the same upon computing the new best metrics for the new content size. If
2262         we can indeed animate, call _animateFrame(), otherwise set the new frame, anchor point and frame
2263         drawing discretely like we used to.
2264
2265         (WebInspector.Popover.prototype._setAnchorPoint):
2266         New method to ensure we floor the position of the anchor point to ensure, when animating, that the
2267         anchor point remains stationary.
2268
2269         (WebInspector.Popover.prototype._animateFrame):
2270         Using the new UnitBezier class, animate the popover frame from its previous value to its newly computed
2271         value while ensuring the anchor point remains, at all times, the same absolute position such that it
2272         remains stationary during the animation. The spline used to animate the frame is the same that a CSS
2273         transition set with an "ease" timing-function (default value) would use.
2274
2275         (WebInspector.Popover.prototype._drawBackground):
2276         (WebInspector.Popover.prototype._drawFrame):
2277         Adopt new ._edge and ._anchorPoint ivars.
2278
2279         * UserInterface/UnitBezier.js: Added.
2280         New class used to perform animations using a timing function specified with a cubic Bézier curve. The code
2281         is directly adapted from the Source/WebCore/platform/graphics/UnitBezier.h file.
2282
2283         (WebInspector.UnitBezier):
2284         (WebInspector.UnitBezier.prototype.solve):
2285         (WebInspector.UnitBezier.prototype._sampleCurveX):
2286         (WebInspector.UnitBezier.prototype._sampleCurveY):
2287         (WebInspector.UnitBezier.prototype._sampleCurveDerivativeX):
2288         (WebInspector.UnitBezier.prototype._solveCurveX):
2289
2290 2014-02-20  Antoine Quint  <graouts@webkit.org>
2291
2292         Web Inspector: content using a CSS transition within a popover causes the popover to disappear
2293         https://bugs.webkit.org/show_bug.cgi?id=129089
2294
2295         Reviewed by Timothy Hatcher.
2296
2297         Simply check that the element being transitioned is indeed the popover's container before assuming
2298         that the "transitonend" received was for a fade-out transition.
2299
2300         * UserInterface/Popover.js:
2301         (WebInspector.Popover.prototype.handleEvent):
2302
2303 2014-02-20  Antoine Quint  <graouts@webkit.org>
2304
2305         Web Inspector: clicking on a color swatch in the Computed styles tab shouldn't show the color editing popover
2306         https://bugs.webkit.org/show_bug.cgi?id=129093
2307
2308         Reviewed by Timothy Hatcher.
2309
2310         If the current editor is read-only, only allow cycling between color types since it wouldn't make sense to edit
2311         such colors.
2312
2313         * UserInterface/CSSStyleDeclarationTextEditor.js:
2314
2315 2014-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2316
2317         Web Inspector: Remove unused InspectorBackend member variable
2318         https://bugs.webkit.org/show_bug.cgi?id=129053
2319
2320         Reviewed by Timothy Hatcher.
2321
2322         * UserInterface/InspectorBackend.js:
2323         (InspectorBackendClass):
2324         (InspectorBackendClass.prototype.registerCommand):
2325         (InspectorBackendClass.prototype.registerEnum):
2326         (InspectorBackendClass.prototype.registerEvent):
2327
2328 2014-02-19  James Craig  <jcraig@apple.com>
2329
2330         Web Inspector: AX: clarify reason for ignored state where possible (hidden, default for tag, etc)
2331         https://bugs.webkit.org/show_bug.cgi?id=129037
2332
2333         Reviewed by Timothy Hatcher.
2334
2335         Passing back hidden and ignoredByDefault attrs to clarify some reasons for "ignored" status.
2336
2337         * Localizations/en.lproj/localizedStrings.js:
2338         * UserInterface/DOMNode.js:
2339         * UserInterface/DOMNodeDetailsSidebarPanel.js:
2340
2341 2014-02-18  James Craig  <jcraig@apple.com>
2342
2343         Web Inspector: AX: more properties: exists, required, and invalid (exists was previously combined with ignored)
2344         https://bugs.webkit.org/show_bug.cgi?id=128504
2345
2346         Reviewed by Timothy Hatcher.
2347
2348         Additions to the accessibility node inspector: exists, required, invalid.
2349
2350         * Localizations/en.lproj/localizedStrings.js:
2351         * UserInterface/DOMNode.js:
2352         * UserInterface/DOMNodeDetailsSidebarPanel.js:
2353
2354 2014-02-18  Antoine Quint  <graouts@webkit.org>
2355
2356         Web Inspector: editing a color in the Styles sidebar using the color picker only works once for a given color
2357         https://bugs.webkit.org/show_bug.cgi?id=128965
2358
2359         Reviewed by Timothy Hatcher.
2360
2361         Use the WebInspector.TextMarker backing the CodeMirror TextMarker object to inspect its type in
2362         order to identify color markers that were created for a color. This fixes a regression introduced
2363         in http://webkit.org/b/125695 when we abstracted CodeMirror TextMarker objects.
2364
2365         * UserInterface/CSSStyleDeclarationTextEditor.js:
2366         (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror.update):
2367         (WebInspector.CSSStyleDeclarationTextEditor.prototype._colorSwatchClicked.updateCodeMirror):
2368
2369 2014-02-18  Antoine Quint  <graouts@webkit.org>
2370
2371         Web Inspector: Editing transparent color shows incorrect opacity slider
2372         https://bugs.webkit.org/show_bug.cgi?id=128975
2373
2374         Reviewed by Joseph Pecoraro.
2375
2376         The opacity slider should show a range of colors from transparent to the full opacity of the tinted color.
2377
2378         * UserInterface/ColorPicker.js:
2379         (WebInspector.ColorPicker.prototype._updateSliders):
2380
2381 2014-02-18  Joseph Pecoraro  <pecoraro@apple.com>
2382
2383         Web Inspector: shift-clicking #fff swatch results in bad rgb value
2384         https://bugs.webkit.org/show_bug.cgi?id=128954
2385
2386         Reviewed by Daniel Bates.
2387
2388         parseInt("FF", 16) is already 255. Do not multiply the result by 255.
2389
2390         * UserInterface/Color.js:
2391         (WebInspector.Color.fromString):
2392
2393 2014-02-18  Antoine Quint  <graouts@webkit.org>
2394
2395         Web Inspector: color picker sliders sometime look wrong on Retina display
2396         https://bugs.webkit.org/show_bug.cgi?id=128963
2397
2398         Reviewed by Timothy Hatcher.
2399
2400         Round the values used to position and size popovers in order to ensure that their content don't suffer
2401         from poor pixel alignment on Retina displays.
2402
2403         * UserInterface/Popover.js:
2404         (WebInspector.Popover.prototype.set frame):
2405
2406 2014-02-17  Antoine Quint  <graouts@webkit.org>
2407
2408         Web Inspector: CSS selectors containing a color name shouldn't be considered for color editing
2409         https://bugs.webkit.org/show_bug.cgi?id=128909
2410
2411         Reviewed by Joseph Pecoraro.
2412
2413         Disregard any text that might be contained within a CSS selector.
2414
2415         * UserInterface/CodeMirrorAdditions.js:
2416
2417 2014-02-15  Chris J. Shull  <chrisjshull@gmail.com>
2418
2419         Web Inspector: scope chain details sidebar doesn't update values modified via console
2420         https://bugs.webkit.org/show_bug.cgi?id=126855
2421
2422         Reviewed by Timothy Hatcher.
2423
2424         Add a RuntimeManager event that the scope chain details sidebar can 
2425         listen to to trigger refresh.
2426
2427         Testing on this is blocked by http://webkit.org/b/128724
2428         (Web Inspector: Issue testing breakpoints).
2429
2430         * UserInterface/RuntimeManager.js:
2431         (WebInspector.RuntimeManager.prototype.evalCallback):
2432         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
2433         * UserInterface/ScopeChainDetailsSidebarPanel.js:
2434         (WebInspector.ScopeChainDetailsSidebarPanel):
2435
2436 2014-02-14  Antoine Quint  <graouts@webkit.org>
2437
2438         Web Inspector: color wheel should support Retina displays
2439         https://bugs.webkit.org/show_bug.cgi?id=124355
2440
2441         Reviewed by Timothy Hatcher.
2442
2443         Take into account the devicePixelRatio in order to draw the color wheel
2444         with as many colors as we can draw with the current DPI and to correctly
2445         convert from page coordinates to canvas coordinates when dealing with
2446         mouse events.
2447
2448         * UserInterface/ColorWheel.js:
2449         (WebInspector.ColorWheel.prototype.set dimension):
2450         (WebInspector.ColorWheel.prototype.get tintedColor):
2451         (WebInspector.ColorWheel.prototype.get rawColor):
2452         (WebInspector.ColorWheel.prototype._drawRawCanvas):
2453         (WebInspector.ColorWheel.prototype._colorAtPointWithBrightness):
2454         (WebInspector.ColorWheel.prototype._drawTintedCanvas):
2455         (WebInspector.ColorWheel.prototype._draw):
2456
2457 2014-02-13  Brian Burg  <bburg@apple.com>
2458
2459         Web Inspector: DataGrid should support editing tables with arbitrary columns
2460         https://bugs.webkit.org/show_bug.cgi?id=128619
2461
2462         Reviewed by Timothy Hatcher.
2463
2464         The data grid editing code should work with any columns, but was previously
2465         hardcoded with the column identifiers used by DOMStorageView. This patch
2466         makes the editing code work with any column identifiers. It also fixes some
2467         bugs in previous/next navigation during data entry.
2468
2469         * UserInterface/DOMStorageContentView.css: Highlight missing keys and values.
2470         (.content-view.dom-storage > .data-grid tr.missing-value td.value-column):
2471         (.content-view.dom-storage > .data-grid:focus tr.selected.missing-value td.value-column):
2472
2473         * UserInterface/DOMStorageContentView.js: Don't blow away the entire table
2474         whenever the backend notifies us of an update to the storage object. This
2475         caused the editing state to be destroyed when values were entered interactively.
2476
2477         (WebInspector.DOMStorageContentView.prototype.reset): Inline the callback
2478         passed to DOMStorageObject.getEntries().
2479         (WebInspector.DOMStorageContentView.prototype.itemsCleared):
2480         (WebInspector.DOMStorageContentView.prototype.itemAdded): Request a sort
2481         of the table rows after backend tells us about item additions or updates.
2482
2483         (WebInspector.DOMStorageContentView.prototype.itemUpdated): Request a sort
2484         of the table rows after backend tells us about item additions or updates.
2485
2486         (WebInspector.DOMStorageContentView.prototype._sortDataGrid): Use DataGrid's
2487         built-in sorting function.
2488
2489         (WebInspector.DOMStorageContentView.prototype._deleteCallback):
2490         (WebInspector.DOMStorageContentView.prototype._editingCallback): Don't force
2491         recreation of the entire table whenever editing finishes. Perform most
2492         of the error checking and editing logic here, including when to insert a
2493         new placeholder row, and when to commit the entered values to DOM storage.
2494
2495         * UserInterface/DOMStorageObject.js: Keep track of the DOM storage entries
2496         in the model so we can detect duplicate entries. Remove unused `id` arguments.
2497
2498         (WebInspector.DOMStorageObject):
2499         (WebInspector.DOMStorageObject.prototype.get entries):
2500         (WebInspector.DOMStorageObject.prototype.itemsCleared):
2501         (WebInspector.DOMStorageObject.prototype.itemRemoved):
2502         (WebInspector.DOMStorageObject.prototype.set this):
2503         (WebInspector.DOMStorageObject.prototype.itemAdded):
2504         (WebInspector.DOMStorageObject.prototype.set var):
2505         (WebInspector.DOMStorageObject.prototype.itemUpdated):
2506
2507         * UserInterface/DataGrid.js:
2508         (.sortDataGrid):
2509         (WebInspector.DataGrid.createSortableDataGrid): Use the built-in DataGrid
2510         sortNodes() implementation.
2511         (WebInspector.DataGrid.prototype._startEditingNodeAtColumnIndex): Renamed
2512         from _startEditingColumnOfDataGridNode. It's easier to understand the navigation
2513         code when presented in terms of adjusting column indexes rather than identifiers.
2514
2515         (WebInspector.DataGrid.prototype._startEditing):
2516         (WebInspector.DataGrid.prototype.determineNextCell): Added. Decides which
2517         column and row to edit next and whether the table can be sorted before the
2518         next cell edit begins.
2519
2520         (WebInspector.DataGrid.prototype.moveToNextCell): Added. Wrapper method for
2521         the above which handles sorting and beginning the next cell edit.
2522
2523         (WebInspector.DataGrid.prototype._editingCommitted): Use better helper methods.
2524         (WebInspector.DataGrid.prototype._editingCancelled): Add an assert.
2525         (WebInspector.DataGrid.prototype.get sortColumnIdentifier): Shorten.
2526         (WebInspector.DataGrid.prototype.addPlaceholderNode):
2527         (WebInspector.DataGrid.prototype.removeChild):
2528         (WebInspector.DataGrid.prototype.):
2529         (WebInspector.DataGrid.prototype.sortNodes): Remove unecessary copying
2530         of all nodes into a separate array. Defer sorting if the user is in the
2531         middle of editing a cell. Make placeholder nodes always sort to the bottom
2532         regardless of the sort column identifier and sort direction.
2533
2534         (WebInspector.DataGridNode.prototype._attach):
2535         (WebInspector.PlaceholderDataGridNode): Renamed from CreationDataGridNode.
2536         (WebInspector.PlaceholderDataGridNode.prototype.makeNormal):
2537
2538         * UserInterface/StorageManager.js: Don't pass unused id argument.
2539         (WebInspector.StorageManager.prototype.itemRemoved):
2540         (WebInspector.StorageManager.prototype.itemAdded):
2541         (WebInspector.StorageManager.prototype.itemUpdated):
2542
2543 2014-02-13  Brian Burg  <bburg@apple.com>
2544
2545         Web Inspector: long script names should be have text-overflow:ellipsis in probe details sidebar
2546         https://bugs.webkit.org/show_bug.cgi?id=128550
2547
2548         Reviewed by Timothy Hatcher.
2549
2550         Make the link element 'display: block', place it after the floated icons,
2551         and set the appropriate CSS overflow properties.
2552
2553         * UserInterface/ProbeDetailsSidebarPanel.css:
2554         (.details-section.probe-set .options > a.go-to-link):
2555         * UserInterface/ProbeSetDetailsSection.js:
2556         (WebInspector.ProbeSetDetailsSection):
2557
2558 2014-02-13  Javier Fernandez  <jfernandez@igalia.com>
2559
2560         [CSS Grid Layout] Rename named areas property
2561         https://bugs.webkit.org/show_bug.cgi?id=127990
2562
2563         Reviewed by Sergio Villar Senin.
2564
2565         From Blink r165891 by <rego@igalia.com>
2566
2567         The property 'grid-template' has been renamed to 'grid-template-areas'
2568         in the last two versions of the spec.
2569
2570         * Tools/PrettyPrinting/css.js:
2571         * UserInterface/External/CodeMirror/css.js:
2572
2573 2014-02-11  Brian Burg  <bburg@apple.com>
2574
2575         Web Inspector: DOMStorageView should listen for events from DOMStorageObject
2576         https://bugs.webkit.org/show_bug.cgi?id=128620
2577
2578         Reviewed by Timothy Hatcher.
2579
2580         The storage manager used to have a map of DOMStorageViews and delivered events
2581         directly to them. Instead, the DOMStorageObserver should use the manager to
2582         find the appropriate DOMStorageObject and deliver events to it. DOMStorageView
2583         learns about storage updates from DOMStorageObject events.
2584
2585         * UserInterface/DOMStorageContentView.js:
2586         (WebInspector.DOMStorageContentView): Add event listeners.
2587         (WebInspector.DOMStorageContentView.prototype.reset): Renamed from update().
2588         (WebInspector.DOMStorageContentView.prototype.itemsCleared): Take an event argument.
2589         (WebInspector.DOMStorageContentView.prototype.itemRemoved): Take an event argument.
2590         Use for..of when iterating over nodes.
2591         (WebInspector.DOMStorageContentView.prototype.itemAdded): Take an event argument.
2592         Use for..of when iterating over nodes.
2593         (WebInspector.DOMStorageContentView.prototype.itemUpdated): Take an event argument.
2594         Use for..of when iterating over nodes.
2595         * UserInterface/DOMStorageObject.js:
2596         (WebInspector.DOMStorageObject.prototype.removeItem): Moved.
2597         (WebInspector.DOMStorageObject.prototype.setItem): Moved.
2598         (WebInspector.DOMStorageObject.prototype.itemsCleared): Added.
2599         (WebInspector.DOMStorageObject.prototype.itemRemoved): Added.
2600         (WebInspector.DOMStorageObject.prototype.itemAdded): Added.
2601         (WebInspector.DOMStorageObject.prototype.itemUpdated): Added.
2602         * UserInterface/DOMStorageObserver.js: Look up and notify the associated model.
2603         (WebInspector.DOMStorageObserver.prototype.domStorageItemsCleared):
2604         (WebInspector.DOMStorageObserver.prototype.domStorageItemRemoved):
2605         (WebInspector.DOMStorageObserver.prototype.domStorageItemAdded):
2606         (WebInspector.DOMStorageObserver.prototype.domStorageItemUpdated):
2607         * UserInterface/StorageManager.js: Remove view lookup code. Remove
2608         direct calls to DOMStorageViews.
2609         (WebInspector.StorageManager.prototype.itemsCleared):
2610         (WebInspector.StorageManager.prototype.itemRemoved):
2611         (WebInspector.StorageManager.prototype.itemAdded):
2612         (WebInspector.StorageManager.prototype.itemUpdated):
2613         (WebInspector.StorageManager.prototype.domStorageWasUpdated):
2614         (WebInspector.StorageManager.prototype.inspectDOMStorage):
2615         (WebInspector.StorageManager.prototype._domStorageForIdentifier):
2616         (WebInspector.StorageManager.prototype._addDOMStorageIfNeeded):
2617         (WebInspector.StorageManager.prototype._databaseForIdentifier):
2618
2619 2014-02-11  James Craig  <jcraig@apple.com>
2620
2621         Web Inspector: AX: Accessibility Node Inspection
2622         https://bugs.webkit.org/show_bug.cgi?id=127447
2623
2624         Reviewed by Timothy Hatcher.
2625
2626         New Accessibility section in WebInspector Node Inspector.
2627         Version 1.0 only shows computed role. Computed label should come soon.
2628
2629         Removed CSS fixed table layout b/c CSS bug: http://webkit.org/b/128294
2630
2631         * Localizations/en.lproj/localizedStrings.js:
2632         * UserInterface/DOMNode.js:
2633         * UserInterface/DOMNodeDetailsSidebarPanel.js:
2634         * UserInterface/DetailsSection.css:
2635         * UserInterface/InspectorWebBackendCommands.js:
2636
2637 2014-02-10  Joseph Pecoraro  <pecoraro@apple.com>
2638
2639         Web Inspector: Update License copyrights in minified JavaScript
2640         https://bugs.webkit.org/show_bug.cgi?id=128547
2641
2642         Reviewed by Timothy Hatcher.
2643
2644         * Scripts/copy-user-interface-resources.sh:
2645
2646 2014-02-07  Brian Burg  <bburg@apple.com>
2647
2648         Web Inspector: show probe sets for script content views in the details sidebar
2649         https://bugs.webkit.org/show_bug.cgi?id=128333
2650
2651         Reviewed by Timothy Hatcher.
2652
2653         This patch adds a new details sidebar for showing the probes associated with any
2654         breakpoint in the currently visible source file. Each probe set (corresponding to
2655         multiple actions of single breakpoint) gets its own ProbeSetDetailsSection. The
2656         section contains a custom DataGrid subclass to display probe data, and some icons
2657         for clearing samples, deleting the probe, and adding a new probe expression.
2658
2659         The table containing probe data keeps its columns in sync with the probe set's
2660         probe expressions. To support this, DataGrid has been further refactored to support
2661         removing columns, and inserting columns (rather than only appending). With this
2662         capability, probe columns are removed and re-inserted when the expression changes.
2663
2664         The availability of the probe details sidebar is controlled by providing the
2665         probe sets matching the script content view's resource URL as supplemental
2666         represented objects.
2667
2668         Lastly, added the utility EventListenerSet class. This holds a set of event listeners
2669         that should be added and removed together, and takes care of binding `thisObject`
2670         according to whether the event emitter is a `Node` or `WebInspector.Object`.
2671
2672         * Localizations/en.lproj/localizedStrings.js:
2673         * UserInterface/BreakpointActionView.js:
2674         (WebInspector.BreakpointActionView):
2675         (WebInspector.BreakpointActionView.prototype._removeAction): Renamed from removeButtonClicked.
2676         (WebInspector.BreakpointActionView.prototype._codeMirrorBlurred): Change the behavior
2677         of CodeMirror-backed editors for probe and evaluate expression actions. If the expression
2678         consists entirely of trimmable whitespace, then delete the action rather than saving it.
2679
2680         * UserInterface/DataGrid.js:
2681         (WebInspector.DataGrid): Copy over the column data into a map inside insertColumn() instead.
2682         (WebInspector.DataGrid.prototype.insertColumn): Renamed from addColumn. It now takes an
2683         optional `insertionIndex` argument and splices the column before the element at that index.
2684         Also, convert code to use EventListenerSet for adding/removing per-column event listeners.
2685
2686         (WebInspector.DataGrid.prototype.removeColumn): Added. It splices the column out.
2687         (WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle): Whitespace.
2688         * UserInterface/EventListenerSet.js: Added.
2689         (WebInspector.EventListenerSet):
2690         (WebInspector.EventListenerSet.prototype.register):
2691         (WebInspector.EventListenerSet.prototype.unregister):
2692         (WebInspector.EventListenerSet.prototype.install):
2693         (WebInspector.EventListenerSet.prototype.uninstall):
2694         * UserInterface/Images/NavigationItemProbes.pdf: Added.
2695         * UserInterface/LayerTreeDataGrid.js:
2696         (WebInspector.LayerTreeDataGrid.prototype._updateChildren): Fix a missing column.get().
2697         * UserInterface/Main.html: Add new JavaScript and CSS files.
2698         * UserInterface/Main.js:
2699         (WebInspector.contentLoaded): Add the probe details sidebar.
2700         * UserInterface/ProbeDetailsSidebarPanel.css: Added.
2701         (.sidebar > .panel.probes > .navigation-bar):
2702         (.sidebar > .panel.probes > .content):
2703         (.details-section.probe-set .options > .probe-add):
2704         (.details-section.probe-set .options > .probe-clear-samples):
2705         (.details-section.probe-set .options > .probe-remove):
2706         (.details-section.probe-set .options > input):
2707         (.panel.probes ::-webkit-scrollbar):
2708         (.panel.probes ::-webkit-scrollbar-track):
2709         (.panel.probes ::-webkit-scrollbar-thumb):
2710         (.panel.probes ::-webkit-scrollbar-corner):
2711         (.popover .probe-popover):
2712         (.popover .probe-popover input):
2713         * UserInterface/ProbeDetailsSidebarPanel.js: Added.
2714         (WebInspector.ProbeDetailsSidebarPanel):
2715         (WebInspector.ProbeDetailsSidebarPanel.prototype.get inspectedProbeSets):
2716         (WebInspector.ProbeDetailsSidebarPanel.prototype._probeSetAdded):
2717         * UserInterface/ProbeManager.js: Remove unused `probeSetForBreakpoint` function.
2718         * UserInterface/ProbeSet.js: Fix erroneous uses of `probe.identifier` instead of `probe.id`.
2719         (WebInspector.ProbeSet.prototype.removeProbe):
2720         (WebInspector.ProbeSet.prototype._sampleCollected):
2721         * UserInterface/ProbeSetDataGrid.css: Added.
2722         (.details-section.probe-set .data-grid .data-container tr.past-value td):
2723         (.details-section.probe-set .data-grid > .data-container td.unknown-value):
2724         (.details-section.probe-set .data-grid .data-container tr.revealed.highlighted):
2725         (@-webkit-keyframes blink-frame-highlight):
2726         (100%):
2727         (.details-section.probe-set .data-grid .data-container tr.separator):
2728         (.details-section.probe-set .data-grid > .data-container tr.data-updated):
2729         (@-webkit-keyframes blink-probe-frame):
2730         (.details-section.probe-set .data-grid .data-container .selected .section *):
2731         (.details-section.probe-set .data-grid .data-container .selected td.unknown-value):
2732         (.details-section.probe-set .data-grid .data-container .section):
2733         (.details-section.probe-set .data-grid th):
2734         (.details-section.probe-set .data-grid th:not(:last-child)):
2735         (.details-section.probe-set .data-grid td):
2736         * UserInterface/ProbeSetDataGrid.js: Added.
2737         (WebInspector.ProbeSetDataGrid):
2738         (WebInspector.ProbeSetDataGrid.prototype.closed):
2739         (WebInspector.ProbeSetDataGrid.prototype._setupProbe):
2740         (WebInspector.ProbeSetDataGrid.prototype._teardownProbe):
2741         (WebInspector.ProbeSetDataGrid.prototype._setupData):
2742         (WebInspector.ProbeSetDataGrid.prototype._teardownData):
2743         (WebInspector.ProbeSetDataGrid.prototype._updateNodeForFrame.else.sortFunction):
2744         (WebInspector.ProbeSetDataGrid.prototype._updateNodeForFrame.else.set node):
2745         (WebInspector.ProbeSetDataGrid.prototype._dataFrameInserted):
2746         (WebInspector.ProbeSetDataGrid.prototype._dataSeparatorInserted):
2747         (WebInspector.ProbeSetDataGrid.prototype._probeExpressionChanged.get var):
2748         * UserInterface/ProbeSetDataGridNode.js: Added.
2749         (WebInspector.ProbeSetDataGridNode):
2750         (WebInspector.ProbeSetDataGridNode.prototype.get element):
2751         (WebInspector.ProbeSetDataGridNode.prototype.get data):
2752         (WebInspector.ProbeSetDataGridNode.prototype.set frame):
2753         (WebInspector.ProbeSetDataGridNode.prototype.get frame):
2754         (WebInspector.ProbeSetDataGridNode.prototype.createCellContent):
2755         (WebInspector.ProbeSetDataGridNode.prototype.updateCellsFromFrame):
2756         (WebInspector.ProbeSetDataGridNode.prototype.updateCellsForSeparator):
2757         * UserInterface/ProbeSetDataTable.js:
2758         (WebInspector.ProbeSetDataTable.prototype.removeProbe): Fix a typo in for..of loop refactor.
2759         * UserInterface/ProbeSetDetailsSection.js: Added.
2760         (WebInspector.ProbeSetDetailsSection):
2761         (WebInspector.ProbeSetDetailsSection.prototype.closed):
2762         (WebInspector.ProbeSetDetailsSection.prototype._probeSetPositionTextOrLink):
2763         (WebInspector.ProbeSetDetailsSection.prototype._addProbeButtonClicked):
2764         (WebInspector.ProbeSetDetailsSection.prototype._removeButtonClicked):
2765         (WebInspector.ProbeSetDetailsSection.prototype._clearSamplesButtonClicked):
2766         * UserInterface/TextResourceContentView.js:
2767         (WebInspector.TextResourceContentView):
2768         (WebInspector.TextResourceContentView.prototype.get supplementalRepresentedObjects):
2769         Add probe sets whose breakpoint matches the represented object's URL.
2770         (WebInspector.TextResourceContentView.prototype._probeSetsChanged): Tell listeners
2771         to re-fetch `supplementalRepresentedObjects` when probe sets are added or removed.
2772
2773 2014-02-08  Dan Bernstein  <mitz@apple.com>
2774
2775         Remove client-drawn highlights (-webkit-highlight, WebHTMLHighlighter)
2776         https://bugs.webkit.org/show_bug.cgi?id=128456
2777
2778         Reviewed by Anders Carlsson.
2779
2780         * UserInterface/CSSKeywordCompletions.js: Removed -webkit-highlight.
2781
2782 2014-02-07  Brian Burg  <bburg@apple.com>
2783
2784         Web Inspector: Clean up DataGrid and add table columns incrementally
2785         https://bugs.webkit.org/show_bug.cgi?id=128332
2786
2787         Reviewed by Timothy Hatcher.
2788
2789         Miscellaneous improvements to DataGrid to make it more maintainable.
2790         In particular, it now uses a `Map` to store column settings, and the
2791         construction sequence has been simplified so that it is safe to add
2792         columns at the end of the constructor (or any later time).
2793
2794         DataGrid stores a bunch of settings per-column, but before this was done
2795         by both storing properties on the provided `column` objects as well as
2796         keeping several `columnIdentifier`-keyed maps for properties like `group`
2797         and `hidden`.
2798
2799         Improve code readability by using for..of loops, destructuring assignment,
2800         `Node.createElement`, and updating variable names. All variables that refer
2801         to DOM nodes now have a `Element` suffix to distinguish them from model objects.
2802
2803         * UserInterface/DataGrid.js:
2804         (.sortDataGrid):
2805         (WebInpector.DataGrid): Create all DOM elements before populating columns.
2806         Remove redundant objects for storing per-column values. Copy column settings
2807         into a map rather than mutating the passed-in JSON-like settings data structure.
2808
2809         (WebInspector.DataGrid.createSortableDataGrid):
2810         (WebInspector.DataGrid.prototype.get length):
2811         (WebInspector.DataGrid.prototype.updateLayout):
2812         (WebInspector.DataGrid.prototype.get scrollContainer):
2813         (WebInspector.DataGrid.prototype.isScrolledToLastRow):
2814         (WebInspector.DataGrid.prototype.scrollToLastRow):
2815         (WebInspector.DataGrid.prototype._positionResizerElements):
2816         (WebInspector.DataGrid.prototype.addCreationNode):
2817         (WebInspector.DataGrid.prototype.):
2818         (WebInspector.DataGrid.prototype.sortNodes):
2819         (WebInspector.DataGrid.prototype.dataGridNodeFromPoint):
2820         (WebInspector.DataGrid.prototype._clickInHeaderCell):
2821         (WebInspector.DataGrid.prototype.isColumnSortColumn):
2822         (WebInspector.DataGrid.prototype.headerTableHeader):
2823         (WebInspector.DataGrid.prototype._copyTextForDataGridNode):
2824         (WebInspector.DataGrid.prototype._resizerDragging):
2825         (WebInspector.DataGridNode.prototype.createCells):
2826         (WebInspector.DataGridNode.prototype.createCell.get var):
2827         (WebInspector.DataGridNode.prototype.elementWithColumnIdentifier):
2828         (WebInspector.DataGridNode.prototype._attach):
2829         * UserInterface/TimelineDataGrid.js:
2830         (WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters.scopeBar.this.columns.get scopeBar):
2831         (WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):
2832
2833 2014-02-07  Mihai Tica  <mitica@adobe.com>
2834
2835         [CSS Background Blending] Unprefix the -webkit-background-blend-mode property
2836
2837         https://bugs.webkit.org/show_bug.cgi?id=128270
2838
2839         Reviewed by Dean Jackson.
2840
2841         * UserInterface/CSSKeywordCompletions.js: Refactor -webkit-background-blend-mode to background-blend-mode.
2842
2843 2014-02-06  Joseph Pecoraro  <pecoraro@apple.com>
2844
2845         Web Inspector: Add Console support to JSContext Inspection
2846         https://bugs.webkit.org/show_bug.cgi?id=127941
2847
2848         Reviewed by Geoffrey Garen.
2849
2850         * UserInterface/InspectorJSBackendCommands.js:
2851         * UserInterface/InspectorWebBackendCommands.js:
2852         ConsoleAgent moved to JavaScript section.
2853
2854 2014-02-06  Andreas Kling  <akling@apple.com>
2855
2856         Remove display:run-in support.
2857         <https://webkit.org/b/127874>
2858         <rdar://problem/15926949>
2859
2860         Rubber-stamped by Anders Carlsson.
2861
2862         * UserInterface/CSSKeywordCompletions.js:
2863         * UserInterface/External/CodeMirror/css.js:
2864
2865 2014-02-05  Brian Burg  <bburg@apple.com>
2866
2867         Web Inspector: add probe manager and model objects to the frontend
2868         https://bugs.webkit.org/show_bug.cgi?id=127117
2869
2870         Reviewed by Timothy Hatcher.
2871
2872         Add the probe manager, and the following model objects:
2873
2874         - ProbeObject corresponds to a single probe breakpoint action.
2875         - ProbeSetObject contains all ProbeObjects for one Breakpoint.
2876         - ProbeSetDataFrame holds probe samples from multiple
2877         probes fired from the same breakpoint hit/debugger pause.
2878         - ProbeSetDataTable keeps track of multiple such data frames
2879         and manages probe sample lifetimes across page navigations.
2880
2881         The probe manager updates probe model objects whenever breakpoints
2882         are added, removed, or modified.
2883
2884         The inspector frontend now assigns breakpoint action identifiers,
2885         rather than the backend. This lets ProbeObjects keep stable
2886         identifiers that match the probe's samples, even when the underlying
2887         breakpoint is re-added with a different identifier (such as when
2888         editing probe expressions).
2889
2890         * UserInterface/Breakpoint.js:
2891         (WebInspector.Breakpoint.prototype.get probeActions): Added.
2892         (WebInspector.Breakpoint.prototype.createAction):
2893         (WebInspector.Breakpoint.prototype.removeAction):
2894         (WebInspector.Breakpoint.prototype.clearActions): Added.
2895         * UserInterface/BreakpointAction.js:
2896         (WebInspector.BreakpointAction):
2897         (WebInspector.BreakpointAction.prototype.get id):
2898         (WebInspector.BreakpointAction.prototype.get info):
2899         * UserInterface/DebuggerManager.js:
2900         (WebInspector.DebuggerManager.restoreBreakpointsSoon):
2901         (WebInspector.DebuggerManager): Restore saved breakpoints
2902         from cookies on the second run loop, so that all managers will
2903         be able to received breakpoint added events.
2904         (WebInspector.DebuggerManager.prototype.addBreakpoint):
2905         (WebInspector.DebuggerManager.prototype.removeBreakpoint):
2906         (WebInspector.DebuggerManager.prototype.get nextBreakpointActionIdentifier):
2907         The debugger manager assigns unique breakpoint action identifiers with this getter.
2908
2909         (WebInspector.DebuggerManager.prototype._debuggerBreakpointActionType):
2910         (WebInspector.DebuggerManager.prototype.didSetBreakpoint):
2911         (WebInspector.DebuggerManager.prototype._setBreakpoint):
2912         (WebInspector.DebuggerManager.prototype.didRemoveBreakpoint):
2913         (WebInspector.DebuggerManager.prototype._removeBreakpoint):
2914         * UserInterface/DebuggerObserver.js:
2915         (WebInspector.DebuggerObserver.prototype.didSampleProbe):
2916         * UserInterface/InspectorJSBackendCommands.js:
2917         * UserInterface/Main.html:
2918         * UserInterface/Main.js:
2919         (WebInspector.loaded):
2920         * UserInterface/Probe.js: Added.
2921         (WebInspector.ProbeSample):
2922         (WebInspector.Probe):
2923         (WebInspector.Probe.prototype.get id):
2924         (WebInspector.Probe.prototype.get breakpoint):
2925         (WebInspector.Probe.prototype.get expression):
2926         (WebInspector.Probe.prototype.set expression):
2927         (WebInspector.Probe.prototype.get samples):
2928         (WebInspector.Probe.prototype.clearSamples):
2929         (WebInspector.Probe.prototype.addSample):
2930         * UserInterface/ProbeManager.js: Added.
2931         (WebInspector.ProbeManager):
2932         (WebInspector.ProbeManager.prototype.probeSetForBreakpoint):
2933         (WebInspector.ProbeManager.prototype._breakpointRemoved):
2934         (WebInspector.ProbeManager.prototype._breakpointActionsChanged.get var):
2935         (WebInspector.ProbeManager.prototype._breakpointActionsChanged.set get knownProbeIdentifiers):
2936         (WebInspector.ProbeManager.prototype._breakpointActionsChanged):
2937         * UserInterface/ProbeSet.js: Added.
2938         (WebInspector.ProbeSet):
2939         (WebInspector.ProbeSet.prototype.get breakpoint):
2940         (WebInspector.ProbeSet.prototype.get probes):
2941         (WebInspector.ProbeSet.prototype.get dataTable):
2942         (WebInspector.ProbeSet.prototype.clear):
2943         (WebInspector.ProbeSet.prototype.clearSamples):
2944         (WebInspector.ProbeSet.prototype.createProbe):
2945         (WebInspector.ProbeSet.prototype.removeProbe):
2946         (WebInspector.ProbeSet.prototype.willRemove):
2947         (WebInspector.ProbeSet.prototype._mainResourceChanged):
2948         (WebInspector.ProbeSet.prototype._createDataTable):
2949         (WebInspector.ProbeSet.prototype._sampleCollected):
2950         (WebInspector.ProbeSet.prototype._breakpointResolvedStateDidChange):
2951         * UserInterface/ProbeSetDataFrame.js: Added.
2952         (WebInspector.ProbeSetDataFrame):
2953         (WebInspector.ProbeSetDataFrame.compare):
2954         (WebInspector.ProbeSetDataFrame.prototype.get key):
2955         (WebInspector.ProbeSetDataFrame.prototype.get count):
2956         (WebInspector.ProbeSetDataFrame.prototype.get index):
2957         (WebInspector.ProbeSetDataFrame.prototype.get isSeparator):
2958         (WebInspector.ProbeSetDataFrame.prototype.set isSeparator):
2959         (WebInspector.ProbeSetDataFrame.prototype.addSampleForProbe):
2960         (WebInspector.ProbeSetDataFrame.prototype.missingKeys):
2961         (WebInspector.ProbeSetDataFrame.prototype.isComplete):
2962         (WebInspector.ProbeSetDataFrame.prototype.fillMissingValues):
2963         * UserInterface/ProbeSetDataTable.js: Added.
2964         (WebInspector.ProbeSetDataTable):
2965         (WebInspector.ProbeSetDataTable.prototype.get frames):
2966         (WebInspector.ProbeSetDataTable.prototype.get separators):
2967         (WebInspector.ProbeSetDataTable.prototype.willRemove):
2968         (WebInspector.ProbeSetDataTable.prototype.mainResourceChanged):
2969         (WebInspector.ProbeSetDataTable.prototype.addSampleForProbe):
2970         (WebInspector.ProbeSetDataTable.prototype.addProbe):
2971         (WebInspector.ProbeSetDataTable.prototype.removeProbe):
2972         (WebInspector.ProbeSetDataTable.prototype.createFrame):
2973         (WebInspector.ProbeSetDataTable.prototype.addFrame):
2974         (WebInspector.ProbeSetDataTable.prototype.addSeparator):
2975
2976 2014-02-05  Zan Dobersek  <zdobersek@igalia.com>
2977
2978         [GTK] Avoid no-op regenerations of GResourceBundle.xml, GResourceBundle.c
2979         https://bugs.webkit.org/show_bug.cgi?id=128192
2980
2981         Reviewed by Carlos Garcia Campos.
2982
2983         When doing incremental builds, GResourceBundle.xml and GResourceBundle.c can be
2984         generated when the dependencies are newer than the products, but the generation
2985         doesn't necessarily produce a new or different product. This results in constant
2986         regenerations for these two build targets. Touch the products at the end of
2987         generation to avoid this looping.
2988
2989         * GNUmakefile.am:
2990
2991 2014-01-30  Timothy Hatcher  <timothy@apple.com>
2992
2993         Show profile data in the discrete Scripts timeline view.
2994
2995         https://bugs.webkit.org/show_bug.cgi?id=127900
2996
2997         Reviewed by Joseph Pecoraro.
2998
2999         * Localizations/en.lproj/localizedStrings.js:
3000         * UserInterface/DataGrid.js:
3001         (WebInspector.DataGridNode.prototype.refreshIfNeeded):
3002         (WebInspector.DataGridNode.prototype.needsRefresh):
3003         (WebInspector.DataGridNode.prototype.set data):
3004         (WebInspector.DataGridNode.prototype.set revealed):
3005         (WebInspector.DataGridNode.prototype.refresh):
3006         * UserInterface/LayoutTimelineDataGrid.js:
3007         (WebInspector.LayoutTimelineDataGrid):
3008         * UserInterface/LayoutTimelineDataGridNode.js:
3009         (WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
3010         * UserInterface/Main.html:
3011         * UserInterface/NavigationSidebarPanel.js:
3012         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
3013         (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
3014         (WebInspector.NavigationSidebarPanel.prototype._generateStyleRulesIfNeeded):
3015         * UserInterface/ProfileNodeDataGridNode.js: Added.
3016         (WebInspector.ProfileNodeDataGridNode):
3017         (WebInspector.ProfileNodeDataGridNode.prototype.get profileNode):
3018         (WebInspector.ProfileNodeDataGridNode.prototype.get records):
3019         (WebInspector.ProfileNodeDataGridNode.prototype.get baseStartTime):
3020         (WebInspector.ProfileNodeDataGridNode.prototype.get rangeStartTime):
3021         (WebInspector.ProfileNodeDataGridNode.prototype.set rangeStartTime):
3022         (WebInspector.ProfileNodeDataGridNode.prototype.get rangeEndTime):
3023         (WebInspector.ProfileNodeDataGridNode.prototype.set rangeEndTime):
3024         (WebInspector.ProfileNodeDataGridNode.prototype.get data):
3025         (WebInspector.ProfileNodeDataGridNode.prototype.refresh):
3026         (WebInspector.ProfileNodeDataGridNode.prototype.createCellContent):
3027         * UserInterface/ProfileNodeTreeElement.js: Added.
3028         (WebInspector.ProfileNodeTreeElement):
3029         (WebInspector.ProfileNodeTreeElement.prototype.get profileNode):
3030         (WebInspector.ProfileNodeTreeElement.prototype.get filterableData):
3031         (WebInspector.ProfileNodeTreeElement.prototype.onattach):
3032         (WebInspector.ProfileNodeTreeElement.prototype.onpopulate):
3033         * UserInterface/ResourceTimelineDataGridNode.js:
3034         (WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
3035         * UserInterface/ScriptTimelineDataGrid.js:
3036         (WebInspector.ScriptTimelineDataGrid):
3037         * UserInterface/ScriptTimelineDataGridNode.js:
3038         (WebInspector.ScriptTimelineDataGridNode):
3039         (WebInspector.ScriptTimelineDataGridNode.prototype.get baseStartTime):
3040         (WebInspector.ScriptTimelineDataGridNode.prototype.get rangeStartTime):
3041         (WebInspector.ScriptTimelineDataGridNode.prototype.set rangeStartTime):
3042         (WebInspector.ScriptTimelineDataGridNode.prototype.get rangeEndTime):
3043         (WebInspector.ScriptTimelineDataGridNode.prototype.set rangeEndTime):
3044         (WebInspector.ScriptTimelineDataGridNode.prototype.get data):
3045         (WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
3046         * UserInterface/ScriptTimelineRecord.js:
3047         (WebInspector.ScriptTimelineRecord):
3048         (WebInspector.ScriptTimelineRecord.prototype.get profile):
3049         * UserInterface/ScriptTimelineView.js:
3050         (WebInspector.ScriptTimelineView.prototype.updateLayout):
3051         (WebInspector.ScriptTimelineView.prototype.get selectionPathComponents):
3052         (WebInspector.ScriptTimelineView.prototype.dataGridNodeForTreeElement):
3053         (WebInspector.ScriptTimelineView.prototype.populateProfileNodeTreeElement):
3054         (WebInspector.ScriptTimelineView.prototype._processPendingRecords):
3055         (WebInspector.ScriptTimelineView.prototype._treeElementSelected):
3056         * UserInterface/TimelineContentView.js:
3057         (WebInspector.TimelineContentView.prototype.matchTreeElementAgainstCustomFilters):
3058         * UserInterface/TimelineDataGrid.js:
3059         (WebInspector.TimelineDataGrid):
3060         (WebInspector.TimelineDataGrid.prototype.addRowInSortOrder):
3061         (WebInspector.TimelineDataGrid.prototype._sort):
3062         * UserInterface/TimelineDataGridNode.js:
3063         (WebInspector.TimelineDataGridNode):
3064         (WebInspector.TimelineDataGridNode.prototype.collapse):
3065         (WebInspector.TimelineDataGridNode.prototype.expand):
3066         * UserInterface/TimelineRecord.js:
3067         * UserInterface/TreeOutlineDataGridSynchronizer.js:
3068         (WebInspector.TreeOutlineDataGridSynchronizer.prototype.get delegate):
3069         (WebInspector.TreeOutlineDataGridSynchronizer.prototype.dataGridNodeForTreeElement):
3070         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementAdded):
3071
3072 2014-01-30  Timothy Hatcher  <timothy@apple.com>
3073
3074         Add the model objects for the new Web Inspector profile data.
3075
3076         https://bugs.webkit.org/show_bug.cgi?id=127899
3077
3078         Reviewed by Joseph Pecoraro.
3079
3080         * UserInterface/Main.html:
3081         * UserInterface/Profile.js: Added.
3082         (WebInspector.Profile):
3083         (WebInspector.Profile.prototype.get idleTime):
3084         (WebInspector.Profile.prototype.get topDownRootNodes):
3085         (WebInspector.Profile.prototype.get bottomUpRootNodes):
3086         * UserInterface/ProfileNode.js: Added.
3087         (WebInspector.ProfileNode):
3088         (WebInspector.ProfileNode.prototype.get id):
3089         (WebInspector.ProfileNode.prototype.get type):
3090         (WebInspector.ProfileNode.prototype.get functionName):
3091         (WebInspector.ProfileNode.prototype.get sourceCodeLocation):
3092         (WebInspector.ProfileNode.prototype.get startTime):
3093         (WebInspector.ProfileNode.prototype.get endTime):
3094         (WebInspector.ProfileNode.prototype.get selfTime):
3095         (WebInspector.ProfileNode.prototype.get totalTime):
3096         (WebInspector.ProfileNode.prototype.get calls):
3097         (WebInspector.ProfileNode.prototype.get previousSibling):
3098         (WebInspector.ProfileNode.prototype.get nextSibling):
3099         (WebInspector.ProfileNode.prototype.get parentNode):
3100         (WebInspector.ProfileNode.prototype.get childNodes):
3101         (WebInspector.ProfileNode.prototype.totalTimeInRange):
3102         (WebInspector.ProfileNode.prototype.computeCallInfoForTimeRange):
3103         (WebInspector.ProfileNode.prototype.traverseNextProfileNode):
3104         (WebInspector.ProfileNode.prototype.saveIdentityToCookie):
3105         (WebInspector.ProfileNode.prototype.establishRelationships):
3106         * UserInterface/ProfileNodeCall.js: Added.
3107         (WebInspector.ProfileNodeCall):
3108         (WebInspector.ProfileNodeCall.prototype.get startTime):
3109         (WebInspector.ProfileNodeCall.prototype.get totalTime):
3110         (WebInspector.ProfileNodeCall.prototype.get endTime):
3111         (WebInspector.ProfileNodeCall.prototype.establishRelationships):
3112         * UserInterface/TimelineManager.js:
3113         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
3114         (WebInspector.TimelineManager.prototype.eventRecorded):
3115         (WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeFromPayload):
3116         (WebInspector.TimelineManager.prototype._profileFromPayload.profileNodeCallFromPayload):
3117         (WebInspector.TimelineManager.prototype._profileFromPayload):
3118
3119 2014-01-26  Timothy Hatcher  <timothy@apple.com>
3120
3121         Prefix existing Web Inspector profiler classes with "Legacy".
3122
3123         Remove a dependency on ProfileView for showTimeAsPercent and selection as a drive-by.
3124         Also remove the unfinished Canvas profiler classes, they will need redone for the Timeline view.
3125
3126         https://bugs.webkit.org/show_bug.cgi?id=127655
3127
3128         Reviewed by Joseph Pecoraro.
3129
3130         * UserInterface/CanvasDataGridNode.js: Removed.
3131         * UserInterface/CanvasObserver.js: Removed.
3132         * UserInterface/CanvasProfileObject.js: Removed.
3133         * UserInterface/CanvasProfileType.js: Removed.
3134         * UserInterface/CanvasProfileView.js: Removed.
3135         * UserInterface/ConsoleObserver.js:
3136         (WebInspector.ConsoleObserver.prototype.messageAdded):
3137         * UserInterface/ContentView.js:
3138         (WebInspector.ContentView):
3139         (WebInspector.ContentView.isViewable):
3140         * UserInterface/InspectorFrontendAPI.js:
3141         (InspectorFrontendAPI.isProfilingJavaScript):
3142         (InspectorFrontendAPI.startProfilingJavaScript):
3143         (InspectorFrontendAPI.stopProfilingJavaScript):
3144         * UserInterface/LegacyBottomUpProfileDataGridTree.js: Renamed from Source/WebInspectorUI/UserInterface/BottomUpProfileDataGridTree.js.
3145         * UserInterface/LegacyJavaScriptProfileObject.js: Renamed from Source/WebInspectorUI/UserInterface/JavaScriptProfileObject.js.
3146         * UserInterface/LegacyJavaScriptProfileType.js: Renamed from Source/WebInspectorUI/UserInterface/JavaScriptProfileType.js.
3147         * UserInterface/LegacyJavaScriptProfileView.css: Renamed from Source/WebInspectorUI/UserInterface/JavaScriptProfileView.css.
3148         * UserInterface/LegacyJavaScriptProfileView.js: Renamed from Source/WebInspectorUI/UserInterface/JavaScriptProfileView.js.
3149         * UserInterface/LegacyProfileDataGridTree.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileDataGridTree.js.
3150         * UserInterface/LegacyProfileManager.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileManager.js.
3151         * UserInterface/LegacyProfileObject.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileObject.js.
3152         * UserInterface/LegacyProfileType.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileType.js.
3153         * UserInterface/LegacyProfileView.css: Renamed from Source/WebInspectorUI/UserInterface/ProfileView.css.
3154         * UserInterface/LegacyProfileView.js: Renamed from Source/WebInspectorUI/UserInterface/ProfileView.js.
3155         * UserInterface/LegacyProfilerObserver.js: Renamed from Source/WebInspectorUI/UserInterface/ProfilerObserver.js.
3156         * UserInterface/LegacyTopDownProfileDataGridTree.js: Renamed from Source/WebInspectorUI/UserInterface/TopDownProfileDataGridTree.js.
3157         * UserInterface/Main.html:
3158         * UserInterface/Main.js:
3159         (WebInspector.loaded):
3160         (WebInspector.openURL):
3161
3162 2014-01-30  Diego Pino Garcia  <dpino@igalia.com>
3163
3164         Web Inspector: [REGRESSION(r163086)] Missing localized string 'Hide console (%s)'
3165         https://bugs.webkit.org/show_bug.cgi?id=127951
3166
3167         Reviewed by Timothy Hatcher.
3168
3169         * Localizations/en.lproj/localizedStrings.js:
3170         Add 'Hide console (%s)'.
3171
3172 2014-01-30  Diego Pino Garcia  <dpino@igalia.com>
3173
3174         Web Inspector: Implement open/close Console window shortcut
3175         https://bugs.webkit.org/show_bug.cgi?id=127896
3176
3177         Reviewed by Timothy Hatcher.
3178
3179         * UserInterface/KeyboardShortcut.js:
3180         (WebInspector.KeyboardShortcut.prototype.get displayName):
3181         Bug: Option symbol should be displayed as Alternative symbol (\u2387)
3182         in non Mac platforms.
3183         * UserInterface/Main.js:
3184         (WebInspector.contentLoaded):
3185         Create keyboard shortcut for toggling console window.
3186
3187 2014-01-29  Joseph Pecoraro  <pecoraro@apple.com>
3188
3189         Web Inspector: Play Breakpoint Sound in Frontend
3190         https://bugs.webkit.org/show_bug.cgi?id=127885
3191
3192         Reviewed by Timothy Hatcher.
3193
3194         Beep in the frontend when a "sound" breakpoint action is triggered.
3195
3196         * UserInterface/DebuggerManager.js:
3197         (WebInspector.DebuggerManager.prototype.playBreakpointActionSound):
3198         * UserInterface/DebuggerObserver.js:
3199         (WebInspector.DebuggerObserver.prototype.resumed):
3200         (WebInspector.DebuggerObserver.prototype.playBreakpointActionSound):
3201         * UserInterface/InspectorJSBackendCommands.js:
3202
3203 2014-01-29  Diego Pino Garcia  <dpino@igalia.com>
3204
3205         Web Inspector: [REGRESSION(r162931)] Tab navigation broken in DataGrid
3206         https://bugs.webkit.org/show_bug.cgi?id=127816
3207
3208         Reviewed by Timothy Hatcher.
3209
3210         * UserInterface/DataGrid.js:
3211         (WebInspector.DataGrid.prototype.moveToNextIfNeeded):
3212         (WebInspector.DataGrid.prototype._editingCommitted):
3213         Change columnIdentifier values 0 and 1 to strings "0" and "1".
3214
3215 2014-01-28  Joseph Pecoraro  <pecoraro@apple.com>
3216
3217         Unreviewed follow-up to r162965. Better coding style.
3218
3219         Timothy Hatcher pointed out a clearer style for classes
3220         on the <body> is to specify body.class. I agree.
3221
3222         * UserInterface/DashboardView.css:
3223         (body.javascript .toolbar .dashboard):
3224         (body.web .toolbar.collapsed .dashboard > .logs):
3225         (body.javascript .toolbar .dashboard > .resourcesCount):
3226
3227 2014-01-28  Joseph Pecoraro  <pecoraro@apple.com>
3228
3229         Web Inspector: Tweak UI when debugging a JSContext
3230         https://bugs.webkit.org/show_bug.cgi?id=127799
3231
3232         Reviewed by Timothy Hatcher.
3233
3234         * UserInterface/DashboardView.css:
3235         (.toolbar.javascript .dashboard):
3236         (.toolbar.web.collapsed .dashboard > .logs):
3237         (.toolbar.javascript .dashboard > .resourcesCount):
3238         Adjust collapsed dashboard in web and javascript debugging modes.
3239         JavaScript debugging mode is always treated as collapsed.
3240
3241         * UserInterface/Main.js:
3242         (WebInspector.contentLoaded):
3243         Adjust what is created and shown when in javascript debugging mode.
3244
3245         * UserInterface/NavigationSidebarPanel.css:
3246         (.navigation-sidebar-panel-content-tree-outline.hide-disclosure-buttons .item.small):
3247         * UserInterface/ResourceSidebarPanel.js:
3248         (WebInspector.ResourceSidebarPanel):
3249         (WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
3250         * UserInterface/TimelineSidebarPanel.css:
3251         (.sidebar > .panel.timeline > .status-bar):
3252         (.sidebar > .panel.timeline > .title-bar):
3253         When javascript debugging expect to put things at the root level, so hide
3254         disclosure buttons and adjust the style so resources look nice here.
3255
3256 2014-01-28  Diego Pino Garcia  <dpino@igalia.com>
3257
3258         Web Inspector: In a DataGrid, store value of columnIdentifier to DOM node representing a cell
3259         https://bugs.webkit.org/show_bug.cgi?id=127613
3260
3261         Reviewed by Timothy Hatcher.
3262
3263         * UserInterface/DOMStorageContentView.js:
3264         (WebInspector.DOMStorageContentView.prototype._editingCallback):
3265         * UserInterface/DataGrid.js:
3266         (WebInspector.DataGrid):
3267         (WebInspector.DataGrid.prototype._keyDown):
3268         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
3269         (WebInspector.DataGridNode.prototype.createCell):
3270
3271 2014-01-27  Joseph Pecoraro  <pecoraro@apple.com>
3272
3273         Web Inspector: Feature Check all Protocol Generated Interfaces to get JSContext Inspection working
3274         https://bugs.webkit.org/show_bug.cgi?id=127712
3275
3276         Reviewed by Timothy Hatcher.
3277
3278         Feature check protocol generated interfaces (e.g. FooAgent and registerFooObserver).
3279         Also drive by handle a possible exception if a SourceCode's URL is null, which is possible.
3280
3281         * UserInterface/ApplicationCacheManager.js:
3282         (WebInspector.ApplicationCacheManager):
3283         (WebInspector.ApplicationCacheManager.prototype.initialize):
3284         * UserInterface/CSSCompletions.js:
3285         (WebInspector.CSSCompletions.requestCSSNameCompletions):
3286         * UserInterface/CSSStyleManager.js:
3287         (WebInspector.CSSStyleManager):
3288         (WebInspector.CSSStyleManager.prototype.canForcePseudoClasses):
3289         * UserInterface/DebuggerManager.js:
3290         * UserInterface/FrameResourceManager.js:
3291         (WebInspector.FrameResourceManager):
3292         (WebInspector.FrameResourceManager.prototype.initialize):
3293         * UserInterface/Main.js:
3294         (WebInspector.loaded):
3295         * UserInterface/ProfileManager.js:
3296         (WebInspector.ProfileManager):
3297         * UserInterface/StorageManager.js:
3298         (WebInspector.StorageManager):
3299         Type check generated interfaces.
3300
3301         (WebInspector.DebuggerManager):
3302         (WebInspector.DebuggerManager.prototype.debuggerDidPause):
3303         Null check a SourceCode URL, which can be null for a Script with no URL.
3304
3305 2014-01-25  Timothy Hatcher  <timothy@apple.com>
3306
3307         Remove dead code from the JSC profiler.
3308
3309         https://bugs.webkit.org/show_bug.cgi?id=127643
3310
3311         Reviewed by Mark Lam.
3312
3313         * Versions/Inspector-iOS-7.0.json: Remove visible from CPUProfileNode.
3314
3315 2014-01-25  Joseph Pecoraro  <pecoraro@apple.com>
3316
3317         Remove FIXME in CSSKeywordCompletions.js about "inherit" keyword
3318         https://bugs.webkit.org/show_bug.cgi?id=127638
3319
3320         Reviewed by Timothy Hatcher.
3321
3322         * UserInterface/CSSKeywordCompletions.js:
3323         (WebInspector.CSSKeywordCompletions.forProperty):
3324         Replace FIXME with a descriptive comment about why the code is what it is.
3325
3326 2014-01-25  Diego Pino Garcia  <dpino@igalia.com>
3327
3328         Web Inspector: Position the completion suggestions popup below if there is room
3329         https://bugs.webkit.org/show_bug.cgi?id=127615
3330
3331         Reviewed by Joseph Pecoraro.
3332
3333         * UserInterface/CompletionSuggestionsView.js:
3334         (WebInspector.CompletionSuggestionsView.prototype.show):
3335
3336 2014-01-23  Timothy Hatcher  <timothy@apple.com>
3337
3338         Refactor TimelineRecordBar combining logic into a helper function.
3339
3340         https://bugs.webkit.org/show_bug.cgi?id=127530
3341
3342         Reviewed by Joseph Pecoraro.
3343
3344         * UserInterface/LayoutTimelineOverviewGraph.js:
3345         (WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout.createBar):
3346         (WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
3347         Use TimelineRecordBar.createCombinedBars.
3348
3349         * UserInterface/NetworkTimelineOverviewGraph.css:
3350         (.timeline-overview-graph.network):
3351         (.timeline-overview-graph.network > .graph-row > .timeline-record-bar):
3352         Cleaned up since we are using TimelineRecordBar.
3353
3354         * UserInterface/NetworkTimelineOverviewGraph.js:
3355         (WebInspector.NetworkTimelineOverviewGraph.prototype.reset):
3356         (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar):
3357         (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout):
3358         Use TimelineRecordBar.createCombinedBars.
3359
3360         * UserInterface/ScriptTimelineOverviewGraph.js:
3361         (WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout.createBar):
3362         (WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
3363         Use TimelineRecordBar.createCombinedBars.
3364
3365         * UserInterface/TimelineDataGridNode.js:
3366         (WebInspector.TimelineDataGridNode.prototype.refreshGraph.createBar):
3367         (WebInspector.TimelineDataGridNode.prototype.refreshGraph):
3368         Use TimelineRecordBar.createCombinedBars.
3369
3370         * UserInterface/TimelineRecordBar.css:
3371         (.timeline-record-bar.unfinished > .segment):
3372         (.timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
3373         (:focus .selected .timeline-record-bar > .segment.inactive):
3374         Improved selected appearance and don't assume .segment.inactive exists.
3375
3376         * UserInterface/TimelineRecordBar.js:
3377         (WebInspector.TimelineRecordBar):
3378         (WebInspector.TimelineRecordBar.createCombinedBars.compareByActiveStartTime): Added.
3379         (WebInspector.TimelineRecordBar.createCombinedBars): Added.
3380         (WebInspector.TimelineRecordBar.prototype.get renderMode): Added.
3381         (WebInspector.TimelineRecordBar.prototype.set renderMode): Added.
3382         (WebInspector.TimelineRecordBar.prototype.set records):
3383         (WebInspector.TimelineRecordBar.prototype.refresh):
3384         Lazily create DOM elements. Support rendering one or both segments. Doing this lets
3385         combined inactive segments sit behind multiple active segments.
3386
3387 2014-01-22  Timothy Hatcher  <timothy@apple.com>
3388
3389         Improve collapsing of TimelineDataGridNode graphs up to ancestors.
3390
3391         https://bugs.webkit.org/show_bug.cgi?id=127440
3392
3393         Reviewed by Joseph Pecoraro.
3394
3395         * UserInterface/TimelineDataGridNode.js:
3396         (WebInspector.TimelineDataGridNode.prototype.collapse):
3397         (WebInspector.TimelineDataGridNode.prototype.createCellContent):
3398         (WebInspector.TimelineDataGridNode.prototype.refresh):
3399         (WebInspector.TimelineDataGridNode.prototype.needsGraphRefresh):
3400         Notify the next visible ancestor it needs to refresh. Use needsGraphRefresh so ancestors
3401         are notified instead of directly calling refreshGraph in some places.
3402
3403 2014-01-22  Timothy Hatcher  <timothy@apple.com>
3404
3405         Don't include a hidden Timeline selection in the navigation path components.
3406
3407         https://bugs.webkit.org/show_bug.cgi?id=127443
3408
3409         Reviewed by Joseph Pecoraro.
3410
3411         * UserInterface/GeneralTreeElementPathComponent.js:
3412         (WebInspector.GeneralTreeElementPathComponent.prototype.get previousSibling):
3413         (WebInspector.GeneralTreeElementPathComponent.prototype.get nextSibling):
3414         Skip hidden siblings.
3415
3416         * UserInterface/OverviewTimelineView.js:
3417         (WebInspector.OverviewTimelineView.prototype.updateLayout):
3418         (WebInspector.OverviewTimelineView.prototype.get selectionPathComponents):
3419         Don't include hidden selection and dispatch SelectionPathComponentsDidChange event if hidden changes.
3420
3421         * UserInterface/TimelineContentView.js:
3422         (WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
3423         Dispatch SelectionPathComponentsDidChange event if hidden changes on the selected tree element.
3424
3425         * UserInterface/TimelineView.js:
3426         (WebInspector.TimelineView.prototype.get selectionPathComponents):
3427         Don't include hidden selection.
3428
3429 2014-01-22  Timothy Hatcher  <timothy@apple.com>
3430
3431         Support collapsing call site records into the resource timeline.
3432
3433         Also fix some filtering and graph issues.
3434
3435         https://bugs.webkit.org/show_bug.cgi?id=127440
3436
3437         Reviewed by Joseph Pecoraro.
3438
3439         * UserInterface/NavigationSidebarPanel.js:
3440         (WebInspector.NavigationSidebarPanel.prototype.updateFilter):
3441         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.matchTextFilter):
3442         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.makeVisible):
3443         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
3444         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
3445         Tweak how filtering happens so custom filters never expand to reveal and auto expanded
3446         tree elements will auto-collapse again later even with custom filters.
3447
3448         * UserInterface/OverviewTimelineView.css:
3449         (.timeline-view.overview > .data-grid tr.parent:not(.expanded) td.graph-column .timeline-record-bar:not(.timeline-record-type-network) > .segment):
3450         (.timeline-view.overview > .data-grid tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar:not(.timeline-record-type-network) > .segment):
3451         (.timeline-view.overview > .data-grid:focus tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar:not(.timeline-record-type-network) > .segment):
3452         Add a shadow to provide some negative space between juxtaposed records. Only needed when not expanded.
3453
3454         * UserInterface/OverviewTimelineView.js:
3455         (WebInspector.OverviewTimelineView.prototype.updateLayout):
3456         (WebInspector.OverviewTimelineView.prototype._addResourceToTreeIfNeeded):
3457         Update the filter when current time changes and only auto expand the main resource.
3458
3459         * UserInterface/ResourceTimelineDataGridNode.js:
3460         (WebInspector.ResourceTimelineDataGridNode):
3461         (WebInspector.ResourceTimelineDataGridNode.prototype._timelineRecordUpdated):
3462         Don't schedule a refresh of the graph if the record isn't visible.
3463
3464         * UserInterface/SourceCodeTimelineTimelineDataGridNode.js:
3465         (WebInspector.SourceCodeTimelineTimelineDataGridNode):
3466         (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype._timelineRecordAdded):
3467         Don't schedule a refresh of the graph if the record isn't visible.
3468
3469         * UserInterface/TimelineContentView.js:
3470         (WebInspector.TimelineContentView.prototype._timeRangeSelectionChanged):
3471         Remove the boolean for updateFilter.
3472
3473         * UserInterface/TimelineDataGrid.js:
3474         (WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
3475         (WebInspector.TimelineDataGrid.prototype._sort):
3476         Keep the hidden state in-sync between node and element.
3477
3478         * UserInterface/TimelineDataGridNode.js:
3479         (WebInspector.TimelineDataGridNode.prototype.collapse):
3480         (WebInspector.TimelineDataGridNode.prototype.expand):
3481         (WebInspector.TimelineDataGridNode.prototype.appendChild):
3482         (WebInspector.TimelineDataGridNode.prototype.insertChild):
3483         (WebInspector.TimelineDataGridNode.prototype.removeChild):
3484         (WebInspector.TimelineDataGridNode.prototype.removeChildren):
3485         (WebInspector.TimelineDataGridNode.prototype.removeChildrenRecursive):
3486         (WebInspector.TimelineDataGridNode.prototype.refreshGraph.createBarsForRecords):
3487         (WebInspector.TimelineDataGridNode.prototype.refreshGraph.else.collectRecordsByType.get if):
3488         (WebInspector.TimelineDataGridNode.prototype.needsGraphRefresh):
3489         (WebInspector.TimelineDataGridNode.prototype.isRecordVisible):
3490         Support drawing the children records on the parent graph.
3491
3492         * UserInterface/TimelineRecordBar.css:
3493         (.timeline-record-bar.unfinished > .segment):
3494         (:focus .selected .timeline-record-bar > .segment):
3495         (:focus .selected .timeline-record-bar > .segment.inactive):
3496         (:focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
3497         Tweaked styles to look better when selected.
3498
3499         * UserInterface/TimelineRecordBar.js:
3500         (WebInspector.TimelineRecordBar.recordsCannotBeCombined):
3501         (WebInspector.TimelineRecordBar.prototype.set records):
3502         (WebInspector.TimelineRecordBar.prototype.refresh):
3503         Drive-by fixes for some bug with bars being reused.
3504
3505 2014-01-21  Timothy Hatcher  <timothy@apple.com>
3506
3507         Remember the Timeline Overview zoom and selection between sessions.
3508
3509         https://bugs.webkit.org/show_bug.cgi?id=127369
3510
3511         Reviewed by Joseph Pecoraro.
3512
3513         * UserInterface/TimelineOverview.js:
3514         (WebInspector.TimelineOverview):
3515         (WebInspector.TimelineOverview.prototype.set secondsPerPixel):
3516         (WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
3517
3518 2014-01-21  Timothy Hatcher  <timothy@apple.com>
3519
3520         Show the Resource and Record selection path in the navigation bar for Timeline views.
3521
3522         https://bugs.webkit.org/show_bug.cgi?id=127367
3523
3524         Reviewed by Joseph Pecoraro.
3525
3526         * UserInterface/LayoutTimelineView.js:
3527         (WebInspector.LayoutTimelineView.prototype.treeElementPathComponentSelected):
3528         (WebInspector.LayoutTimelineView.prototype._dataGridNodeSelected):
3529         * UserInterface/NetworkTimelineView.js:
3530         (WebInspector.NetworkTimelineView.prototype.treeElementPathComponentSelected):
3531         (WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):
3532         * UserInterface/OverviewTimelineView.js:
3533         (WebInspector.OverviewTimelineView.prototype.get selectionPathComponents):
3534         (WebInspector.OverviewTimelineView.prototype.treeElementPathComponentSelected):
3535         (WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):
3536         * UserInterface/ScriptTimelineView.js:
3537         (WebInspector.ScriptTimelineView.prototype.treeElementPathComponentSelected):
3538         (WebInspector.ScriptTimelineView.prototype._dataGridNodeSelected):
3539         * UserInterface/TimelineContentView.js:
3540         (WebInspector.TimelineContentView.prototype._timelineViewSelectionPathComponentsDidChange):
3541         (WebInspector.TimelineContentView.prototype._showTimelineView):
3542         * UserInterface/TimelineDataGrid.js:
3543         (WebInspector.TimelineDataGrid.prototype.treeElementForDataGridNode):
3544         (WebInspector.TimelineDataGrid.prototype.dataGridNodeForTreeElement):
3545         * UserInterface/TimelineView.js:
3546         (WebInspector.TimelineView.prototype.get selectionPathComponents):
3547         (WebInspector.TimelineView.prototype.treeElementPathComponentSelected):
3548
3549 2014-01-20  Timothy Hatcher  <timothy@apple.com>
3550
3551         Add the recording button back to the Timelines sidebar.
3552
3553         https://bugs.webkit.org/show_bug.cgi?id=127314
3554
3555         Reviewed by Joseph Pecoraro.
3556
3557         * Localizations/en.lproj/localizedStrings.js: Updated.
3558
3559         * UserInterface/TimelineContentView.js:
3560         (WebInspector.TimelineContentView.prototype.get navigationItems):
3561         (WebInspector.TimelineContentView.prototype._update):
3562         (WebInspector.TimelineContentView.prototype._updateTimes):
3563         (WebInspector.TimelineContentView.prototype._startUpdatingCurrentTime):
3564         (WebInspector.TimelineContentView.prototype._recordingTimesUpdated):
3565         (WebInspector.TimelineContentView.prototype._clearTimeline):
3566         (WebInspector.TimelineContentView.prototype._recordingReset):
3567         Add a clear button and reset the time ruler and views when the recording resets.
3568
3569         * UserInterface/TimelineSidebarPanel.css:
3570         (.sidebar > .panel.timeline > .status-bar):
3571         (.sidebar > .panel.timeline > .status-bar > .record-glyph):
3572         (.sidebar > .panel.timeline > .status-bar > .record-glyph.recording):
3573         (.sidebar > .panel.timeline > .status-bar > .record-glyph:hover):
3574         (.sidebar > .panel.timeline > .status-bar > .record-glyph.recording:hover):
3575         (.sidebar > .panel.timeline > .status-bar > .record-glyph.forced):
3576         (.sidebar > .panel.timeline > .status-bar > .record-glyph.recording.forced):
3577         (.sidebar > .panel.timeline > .status-bar > .record-status):
3578         Add styles for the recording button and status message.
3579
3580         * UserInterface/TimelineSidebarPanel.js:
3581         (WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
3582         (WebInspector.TimelineSidebarPanel.prototype._recordingStarted):
3583         (WebInspector.TimelineSidebarPanel.prototype._recordingStopped):
3584         (WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOver):
3585         (WebInspector.TimelineSidebarPanel.prototype._recordGlyphMousedOut):
3586         (WebInspector.TimelineSidebarPanel.prototype._recordGlyphClicked):
3587         Add support for the recording button and status message.
3588
3589 2014-01-20  Timothy Hatcher  <timothy@apple.com>
3590
3591         Make the TimelineRecordTreeElement location subtitle live.
3592
3593         https://bugs.webkit.org/show_bug.cgi?id=127270
3594
3595         Reviewed by Joseph Pecoraro.
3596
3597         * Localizations/en.lproj/localizedStrings.js: Updated.
3598
3599         * UserInterface/SourceCodeLocation.js:
3600         (WebInspector.SourceCodeLocation.prototype.originalLocationString):
3601         (WebInspector.SourceCodeLocation.prototype.formattedLocationString):
3602         (WebInspector.SourceCodeLocation.prototype.displayLocationString):
3603         (WebInspector.SourceCodeLocation.prototype.updateDisplayString):
3604         (WebInspector.SourceCodeLocation.prototype._locationString):
3605         Support for a new nameStyle enum and a prefix for the location string.
3606         Passing the prefix here lets it be italicized with the line number.
3607         Support column number for SourceCode's without a URL too.
3608
3609         * UserInterface/TimelineRecordTreeElement.js:
3610         (WebInspector.TimelineRecordTreeElement):
3611         (WebInspector.TimelineRecordTreeElement.prototype.onattach):
3612         Create a subtitle span to update the location inside. Update the tooltip on attach.
3613
3614 2014-01-19  Timothy Hatcher  <timothy@apple.com>
3615
3616         Generate better display names for timer and event Timeline records.
3617
3618         Also support AnimationFrameRequested and AnimationFrameCanceled.
3619
3620         https://bugs.webkit.org/show_bug.cgi?id=127258
3621
3622         Reviewed by Joseph Pecoraro.
3623
3624         * Localizations/en.lproj/localizedStrings.js: Updated.
3625
3626         * UserInterface/LayoutTimelineRecord.js:
3627         (WebInspector.LayoutTimelineRecord.EventType.displayName):
3628         Generate past tense names that better match other names.
3629
3630         * UserInterface/ScriptTimelineDataGridNode.js:
3631         (WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
3632         Pass the details to displayName.
3633
3634         * UserInterface/ScriptTimelineRecord.js:
3635         (WebInspector.ScriptTimelineRecord.EventType.displayName):
3636         Generate better names for timer and event records. Also add missing animation frame types.
3637
3638         * UserInterface/ScriptTimelineView.js:
3639         (WebInspector.ScriptTimelineView.prototype._processPendingRecords):
3640         Pass true to WebInspector.TimelineRecordTreeElement to include timer identifiers in the title.
3641
3642         * UserInterface/SourceCodeTimelineTreeElement.js:
3643         (WebInspector.SourceCodeTimelineTreeElement):
3644         Pass includeTimerIdentifierInMainTitle through to TimelineRecordTreeElement.
3645
3646         * UserInterface/TimelineManager.js:
3647         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord):
3648         Include AnimationFrameRequested and AnimationFrameCanceled.
3649
3650         * UserInterface/TimelineRecordTreeElement.js:
3651         (WebInspector.TimelineRecordTreeElement):
3652         Use displayName functions instead and support includeTimerIdentifierInMainTitle.
3653
3654 2014-01-19  Timothy Hatcher  <timothy@apple.com>
3655
3656         Implement basic versions of the TimelineOverview graphs.
3657
3658         https://bugs.webkit.org/show_bug.cgi?id=127184
3659
3660         Reviewed by Joseph Pecoraro.
3661
3662         * UserInterface/LayoutTimelineOverviewGraph.css: Added.
3663         (.timeline-overview-graph.layout > .timeline-record-bar):
3664         (.timeline-overview-graph.layout > .timeline-record-bar > .segment):
3665
3666         * UserInterface/LayoutTimelineOverviewGraph.js: Added.
3667         (WebInspector.LayoutTimelineOverviewGraph.prototype.reset):
3668         (WebInspector.LayoutTimelineOverviewGraph.prototype.updateLayout):
3669         (WebInspector.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded):
3670
3671         * UserInterface/Main.html: Added new files.
3672
3673         * UserInterface/NetworkTimelineOverviewGraph.css: Added.
3674         (.timeline-overview-graph.network):
3675         (.timeline-overview-graph.network > .graph-row):
3676         (.timeline-overview-graph.network > .graph-row > .bar):
3677         (.timeline-overview-graph.network > .graph-row > .bar.inactive):
3678         (.timeline-overview-graph.network > .graph-row > .bar.unfinished):
3679         (.timeline-overview-graph.network > .graph-row > .bar:not(.inactive)):
3680         (.timeline-overview-graph.network:nth-child(even) > .graph-row > .bar:not(.inactive)):
3681
3682         * UserInterface/NetworkTimelineOverviewGraph.js: Added.
3683         (WebInspector.NetworkTimelineOverviewGraph.prototype.reset):
3684         (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.updateElementPosition):
3685         (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout.createBar):
3686         (WebInspector.NetworkTimelineOverviewGraph.prototype.updateLayout):
3687         (WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded.compareByStartTime):
3688         (WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded.insertObjectIntoSortedArray):
3689         (WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded):
3690
3691         * UserInterface/ScriptTimelineOverviewGraph.css: Added.
3692         (.timeline-overview-graph.script > .timeline-record-bar):
3693         (.timeline-overview-graph.script > .timeline-record-bar > .segment):
3694
3695         * UserInterface/ScriptTimelineOverviewGraph.js: Added.
3696         (WebInspector.ScriptTimelineOverviewGraph.prototype.reset):
3697         (WebInspector.ScriptTimelineOverviewGraph.prototype.updateLayout):
3698         (WebInspector.ScriptTimelineOverviewGraph.prototype._scriptTimelineRecordAdded):
3699
3700         * UserInterface/TimelineContentView.js:
3701         (WebInspector.TimelineContentView.prototype._showTimelineView):
3702         (WebInspector.TimelineContentView.prototype._update):
3703         (WebInspector.TimelineContentView.prototype._recordingReset):
3704         Create and keep the graphs informed.
3705
3706         * UserInterface/TimelineDataGridNode.js:
3707         (WebInspector.TimelineDataGridNode):
3708         (WebInspector.TimelineDataGridNode.prototype.refreshGraph):
3709         Combine records that might overlap.
3710
3711         * UserInterface/TimelineOverview.css:
3712         (.timeline-overview > .graphs-container):
3713         (.timeline-overview > .graphs-container > .timeline-overview-graph):
3714         (.timeline-overview > .graphs-container > .timeline-overview-graph:nth-child(even)):
3715         (.timeline-overview > .graphs-container > .timeline-overview-graph:not(:first-child)):
3716         Add the graph rows with alternating stripe.
3717
3718         * UserInterface/TimelineOverview.js:
3719         (WebInspector.TimelineOverview):
3720         (WebInspector.TimelineOverview.prototype.set startTime):
3721         (WebInspector.TimelineOverview.prototype.get currentTime):
3722         (WebInspector.TimelineOverview.prototype.set currentTime):
3723         (WebInspector.TimelineOverview.prototype.updateLayout):
3724         (WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
3725         Track currentTime in a member variable and let TimelineOverview manage the current time marker.
3726
3727         * UserInterface/TimelineOverviewGraph.js: Added.
3728         (WebInspector.TimelineOverviewGraph):
3729         (WebInspector.TimelineOverviewGraph.prototype.get zeroTime):
3730         (WebInspector.TimelineOverviewGraph.prototype.set zeroTime):
3731         (WebInspector.TimelineOverviewGraph.prototype.get startTime):
3732         (WebInspector.TimelineOverviewGraph.prototype.set startTime):
3733         (WebInspector.TimelineOverviewGraph.prototype.get endTime):
3734         (WebInspector.TimelineOverviewGraph.prototype.set endTime):
3735         (WebInspector.TimelineOverviewGraph.prototype.get currentTime):
3736         (WebInspector.TimelineOverviewGraph.prototype.set currentTime):
3737         (WebInspector.TimelineOverviewGraph.prototype.reset):
3738         (WebInspector.TimelineOverviewGraph.prototype.updateLayout):
3739         (WebInspector.TimelineOverviewGraph.prototype.updateLayoutIfNeeded):
3740         (WebInspector.TimelineOverviewGraph.prototype.needsLayout):
3741
3742         * UserInterface/TimelineRecordBar.css:
3743         (.timeline-record-bar > .segment):
3744         (.timeline-record-bar.unfinished > .segment):
3745         (.timeline-record-bar > .segment.inactive + .segment):
3746         (.timeline-record-bar.timeline-record-type-network > .segment.inactive):
3747
3748         * UserInterface/TimelineRecordBar.js:
3749         (WebInspector.TimelineRecordBar):
3750         (WebInspector.TimelineRecordBar.recordsCannotBeCombined):
3751         (WebInspector.TimelineRecordBar.prototype.get records):
3752         (WebInspector.TimelineRecordBar.prototype.set records):
3753         (WebInspector.TimelineRecordBar.prototype.refresh):
3754         Make TimelineRecordBar support multiple records.
3755
3756         * UserInterface/TimelineRuler.css:
3757         (.timeline-ruler > .markers):
3758         (.timeline-ruler > .selection-handle):
3759         (.timeline-ruler > .shaded-area):
3760         Add some z-index values to stay above graph elements.
3761
3762 2014-01-16  Timothy Hatcher  <timothy@apple.com>
3763
3764         Clean up Timelines code by using ES6 features and less global access of TimelineRecording.
3765         Also don't recreate Timeline objects when TimelineRecording is reset, reset them instead.
3766
3767         https://bugs.webkit.org/show_bug.cgi?id=127157
3768
3769         Reviewed by Joseph Pecoraro.
3770
3771         * UserInterface/LayoutTimelineView.js:
3772         (WebInspector.LayoutTimelineView.prototype.reset):
3773         * UserInterface/NetworkTimeline.js:
3774         (WebInspector.NetworkTimeline):
3775         (WebInspector.NetworkTimeline.prototype.reset):
3776         * UserInterface/NetworkTimelineView.js:
3777         (WebInspector.NetworkTimelineView.prototype.reset):
3778         * UserInterface/OverviewTimelineView.js:
3779         (WebInspector.OverviewTimelineView.prototype._networkTimelineRecordAdded):
3780         * UserInterface/ScriptTimelineView.js:
3781         (WebInspector.ScriptTimelineView.prototype.reset):
3782         * UserInterface/Timeline.js:
3783         (WebInspector.Timeline):
3784         (WebInspector.Timeline.prototype.reset):
3785         * UserInterface/TimelineContentView.js:
3786         (WebInspector.TimelineContentView.set createPathComponent):
3787         (WebInspector.TimelineContentView.set var):
3788         (WebInspector.TimelineContentView.prototype.showOverviewTimelineView):
3789         (WebInspector.TimelineContentView.prototype.showTimelineView):
3790         (WebInspector.TimelineContentView.prototype._showTimelineView):
3791         (WebInspector.TimelineContentView.prototype._update):
3792         (WebInspector.TimelineContentView.prototype._recordingReset):
3793         * UserInterface/TimelineRecording.js:
3794         (WebInspector.TimelineRecording.prototype.reset):
3795
3796 2014-01-16  Timothy Hatcher  <timothy@apple.com>
3797
3798         Improve WebInspector.TimelineOverview by not putting WebInspector.TimelineRuler in a scroll area.
3799
3800         https://bugs.webkit.org/show_bug.cgi?id=127145
3801
3802         Reviewed by Joseph Pecoraro.
3803
3804         * UserInterface/TimelineOverview.css:
3805         (.timeline-overview > .scroll-container):
3806         (.timeline-overview > .timeline-ruler):
3807         (.timeline-overview > .scroll-container > .scroll-width-sizer):
3808         * UserInterface/TimelineOverview.js:
3809         (WebInspector.TimelineOverview):
3810         (WebInspector.TimelineOverview.prototype.get startTime):
3811         (WebInspector.TimelineOverview.prototype.set startTime):
3812         (WebInspector.TimelineOverview.prototype.get secondsPerPixel):
3813         (WebInspector.TimelineOverview.prototype.set secondsPerPixel):
3814         (WebInspector.TimelineOverview.prototype.get scrollStartTime):
3815         (WebInspector.TimelineOverview.prototype.set scrollStartTime):
3816         (WebInspector.TimelineOverview.prototype.get visibleDuration):
3817         (WebInspector.TimelineOverview.prototype.revealMarker):
3818         (WebInspector.TimelineOverview.prototype.updateLayout):
3819         (WebInspector.TimelineOverview.prototype._handleScrollEvent):
3820         (WebInspector.TimelineOverview.prototype._handleWheelEvent):
3821         * UserInterface/TimelineRuler.js:
3822         (WebInspector.TimelineRuler.MinimumSelectionTimeRange): Reduce to 10ms now that super zoom has no performance impact.
3823
3824 2014-01-15  Timothy Hatcher  <timothy@apple.com>
3825
3826         Implement the discrete Script and Layout timeline views.
3827
3828         https://bugs.webkit.org/show_bug.cgi?id=127063
3829
3830         Reviewed by Joseph Pecoraro.
3831
3832   &