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