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