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