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