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