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