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