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