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