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