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