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