Web Inspector: Cannot undo in breakpoint editor
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2016-09-06  Devin Rousso  <dcrousso+webkit@gmail.com>
2
3         Web Inspector: Cannot undo in breakpoint editor
4         https://bugs.webkit.org/show_bug.cgi?id=152858
5
6         Reviewed by Brian Burg.
7
8         * UserInterface/Controllers/BreakpointPopoverController.js:
9         (WebInspector.BreakpointPopoverController.prototype._conditionCodeMirrorBeforeChange):
10         Since the breakpoint editor only allows a single line of JavaScript, it attempts to remove
11         all "\n" characters.  During an "undo" action, this is not possible.
12
13 2016-09-04  Joseph Pecoraro  <pecoraro@apple.com>
14
15         Web Inspector: Enable and enforce some recommended and stylistic ESLint rules
16         https://bugs.webkit.org/show_bug.cgi?id=161567
17
18         Reviewed by Brian Burg.
19
20         * .eslintrc:
21         * UserInterface/Base/EventListener.js:
22         * UserInterface/Base/EventListenerSet.js:
23         * UserInterface/Base/MIMETypeUtilities.js:
24         * UserInterface/Base/Main.js:
25         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
26         * UserInterface/Controllers/DOMTreeManager.js:
27         * UserInterface/Controllers/TimelineManager.js:
28         * UserInterface/Models/CSSKeywordCompletions.js:
29         * UserInterface/Models/DOMNode.js:
30         * UserInterface/Models/DOMNodeStyles.js:
31         * UserInterface/Models/Frame.js:
32         * UserInterface/Models/Geometry.js:
33         * UserInterface/Models/ProfileNode.js:
34         * UserInterface/Models/RenderingFrameTimelineRecord.js:
35         * UserInterface/Models/SourceCodeLocation.js:
36         * UserInterface/Protocol/RemoteObject.js:
37         * UserInterface/Views/ApplicationCacheFrameContentView.js:
38         * UserInterface/Views/ContextMenu.js:
39         * UserInterface/Views/DOMTreeContentView.js:
40         * UserInterface/Views/DOMTreeElement.js:
41         * UserInterface/Views/DataGrid.js:
42         * UserInterface/Views/GeneralTreeElement.js:
43         * UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:
44         * UserInterface/Views/LogContentView.js:
45         * UserInterface/Views/OpenResourceDialog.js:
46         * UserInterface/Views/StyleDetailsPanel.js:
47         * UserInterface/Views/VisualStyleDetailsPanel.js:
48         * UserInterface/Views/VisualStyleKeywordPicker.js:
49         * UserInterface/Views/VisualStylePropertyEditor.js:
50         * UserInterface/Workers/Formatter/FormatterWorker.js:
51
52 2016-09-04  Joseph Pecoraro  <pecoraro@apple.com>
53
54         Web Inspector: Run ESLint over UserInterface/Views
55         https://bugs.webkit.org/show_bug.cgi?id=161564
56
57         Reviewed by Brian Burg.
58
59         * .eslintrc:
60         * UserInterface/Views/BoxModelDetailsSectionRow.js:
61         * UserInterface/Views/ButtonNavigationItem.js:
62         * UserInterface/Views/CSSStyleDeclarationSection.js:
63         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
64         * UserInterface/Views/CodeMirrorAdditions.js:
65         * UserInterface/Views/CodeMirrorEditor.js:
66         * UserInterface/Views/CodeMirrorFormatters.js:
67         * UserInterface/Views/ColorWheel.js:
68         * UserInterface/Views/ComputedStyleDetailsPanel.js:
69         * UserInterface/Views/ConsoleMessageView.js:
70         * UserInterface/Views/ContentViewContainer.js:
71         * UserInterface/Views/CookieStorageContentView.js:
72         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
73         * UserInterface/Views/DOMStorageContentView.js:
74         * UserInterface/Views/DOMTreeElement.js:
75         * UserInterface/Views/DOMTreeOutline.js:
76         * UserInterface/Views/DashboardContainerView.js:
77         * UserInterface/Views/DataGrid.js:
78         * UserInterface/Views/DataGridNode.js:
79         * UserInterface/Views/DebuggerSidebarPanel.js:
80         * UserInterface/Views/DefaultDashboardView.js:
81         * UserInterface/Views/FontResourceContentView.js:
82         * UserInterface/Views/FormattedValue.js:
83         * UserInterface/Views/GradientEditor.js:
84         * UserInterface/Views/GradientSlider.js:
85         * UserInterface/Views/HeapSnapshotContentView.js:
86         * UserInterface/Views/HeapSnapshotDataGridTree.js:
87         * UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
88         * UserInterface/Views/HoverMenu.js:
89         * UserInterface/Views/LogContentView.js:
90         * UserInterface/Views/MemoryTimelineOverviewGraph.js:
91         * UserInterface/Views/MemoryTimelineView.js:
92         * UserInterface/Views/NavigationSidebarPanel.js:
93         * UserInterface/Views/NetworkTimelineOverviewGraph.js:
94         * UserInterface/Views/NewTabContentView.js:
95         * UserInterface/Views/ObjectPreviewView.js:
96         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
97         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
98         * UserInterface/Views/OverviewTimelineView.js:
99         * UserInterface/Views/Popover.js:
100         * UserInterface/Views/ProbeSetDetailsSection.js:
101         * UserInterface/Views/ProfileDataGridNode.js:
102         * UserInterface/Views/ProfileDataGridTree.js:
103         * UserInterface/Views/ProfileView.js:
104         * UserInterface/Views/ResourceSidebarPanel.js:
105         * UserInterface/Views/RulesStyleDetailsPanel.js:
106         * UserInterface/Views/ScopeRadioButtonNavigationItem.js:
107         * UserInterface/Views/ScriptClusterTimelineView.js:
108         * UserInterface/Views/ScriptDetailsTimelineView.js:
109         * UserInterface/Views/ScriptProfileTimelineView.js:
110         * UserInterface/Views/StackedLineChart.js:
111         * UserInterface/Views/StorageSidebarPanel.js:
112         * UserInterface/Views/TabBrowser.js:
113         * UserInterface/Views/TextEditor.js:
114         * UserInterface/Views/TimelineDataGridNode.js:
115         * UserInterface/Views/TimelineOverview.js:
116         * UserInterface/Views/TimelineRecordFrame.js:
117         * UserInterface/Views/TimelineRecordingContentView.js:
118         * UserInterface/Views/TimelineTabContentView.js:
119         * UserInterface/Views/TreeOutline.js:
120         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
121         * UserInterface/Views/VisualStylePropertyEditor.js:
122         * UserInterface/Views/VisualStyleSelectorSection.js:
123
124 2016-09-04  Joseph Pecoraro  <pecoraro@apple.com>
125
126         Web Inspector: Update ESLint rules and run it over most of UserInterface
127         https://bugs.webkit.org/show_bug.cgi?id=161561
128
129         Reviewed by Brian Burg.
130
131         * .eslintrc:
132         Updated ESLint rules.
133
134         * UserInterface/Base/InspectorFrontendHostStub.js:
135         * UserInterface/Base/Main.js:
136         * UserInterface/Base/Object.js:
137         * UserInterface/Base/Platform.js:
138         * UserInterface/Base/Setting.js:
139         * UserInterface/Controllers/CSSStyleManager.js:
140         * UserInterface/Controllers/CodeMirrorCompletionController.js:
141         * UserInterface/Controllers/CodeMirrorTextKillController.js:
142         * UserInterface/Controllers/DebuggerManager.js:
143         * UserInterface/Controllers/DragToAdjustController.js:
144         * UserInterface/Controllers/ReplayManager.js:
145         * UserInterface/Controllers/SourceMapManager.js:
146         * UserInterface/Controllers/TimelineManager.js:
147         * UserInterface/Controllers/TypeTokenAnnotator.js:
148         * UserInterface/Controllers/VisualStyleCompletionsController.js:
149         * UserInterface/Debug/Bootstrap.js:
150         * UserInterface/Debug/UncaughtExceptionReporter.js:
151         * UserInterface/Models/CSSRule.js:
152         * UserInterface/Models/CallingContextTree.js:
153         * UserInterface/Models/CallingContextTreeNode.js:
154         * UserInterface/Models/ConsoleCommandResultMessage.js:
155         * UserInterface/Models/CookieStorageObject.js:
156         * UserInterface/Models/Frame.js:
157         * UserInterface/Models/Geometry.js:
158         * UserInterface/Models/IssueMessage.js:
159         * UserInterface/Models/LayoutTimelineRecord.js:
160         * UserInterface/Models/MemoryTimeline.js:
161         * UserInterface/Models/NativeFunctionParameters.js:
162         * UserInterface/Models/ProfileNode.js:
163         * UserInterface/Models/RenderingFrameTimelineRecord.js:
164         * UserInterface/Models/Resource.js:
165         * UserInterface/Models/ScriptSyntaxTree.js:
166         * UserInterface/Models/ScriptTimelineRecord.js:
167         * UserInterface/Models/StackTrace.js:
168         * UserInterface/Models/TypeSet.js:
169         * UserInterface/Models/WrappedPromise.js:
170         * UserInterface/Protocol/InspectorBackend.js:
171         * UserInterface/Protocol/InspectorFrontendAPI.js:
172         * UserInterface/Protocol/RemoteObject.js:
173         * UserInterface/Protocol/ScriptProfilerObserver.js:
174         * UserInterface/Test/FrontendTestHarness.js:
175         * UserInterface/Test/InspectorProtocol.js:
176         * UserInterface/Test/ProtocolTestHarness.js:
177         * UserInterface/Test/Test.js:
178         * UserInterface/Test/TestHarness.js:
179         * UserInterface/Test/TestSuite.js:
180         * UserInterface/Workers/Formatter/EsprimaFormatter.js:
181         * UserInterface/Workers/HeapSnapshot/HeapSnapshotWorker.js:
182
183 2016-09-04  Commit Queue  <commit-queue@webkit.org>
184
185         Unreviewed, rolling out r205415.
186         https://bugs.webkit.org/show_bug.cgi?id=161573
187
188         Many bots see inspector test failures, rolling out now and
189         investigating later. (Requested by brrian on #webkit).
190
191         Reverted changeset:
192
193         "Web Inspector: unify Main.html and Test.html sources and
194         generate different copies with the preprocessor"
195         https://bugs.webkit.org/show_bug.cgi?id=161212
196         http://trac.webkit.org/changeset/205415
197
198 2016-09-01  Brian Burg  <bburg@apple.com>
199
200         Web Inspector: unify Main.html and Test.html sources and generate different copies with the preprocessor
201         https://bugs.webkit.org/show_bug.cgi?id=161212
202         <rdar://problem/28017961>
203
204         Reviewed by Joseph Pecoraro.
205
206         Add a Derived Sources build phase to WebInspectorUI project. Generate
207         Test.html and Main.html from a combined Inspector.html.in which has preprocessor
208         macros to include/exclude files not needed by all main resource versions.
209
210         Similarly, start generating these Inspector files in WebInspectorUI/CMakeLists.txt.
211         Move platform-specific bundling commands into PlatformGTK.cmake.
212
213         * CMakeLists.txt: Added.
214         Set up a list of common frontend resources that specific ports can extend, such as
215         with their own port-specific image resources. This list is the input to port-specific
216         packaging/bundling scripts. Eventually, minification and concatenation should happen
217         independently of the specific port by constructing the list of resources dynamically.
218
219         To ensure resources are always generated in WebInspectorUI and accessible from WebKit2,
220         add a dummy target that is always out of date and depends on generated files, causing
221         them to be built.
222
223         Also create a macro to run the preprocessor over Inspector.html.in using various
224         preprocessor macro definitions. These are customizable by ports to control the
225         appearance of ENGINEERING_BUILD, which guards resources not meant for shipping builds.
226
227         * Configurations/WebInspectorUIFramework.xcconfig:
228         We need to use preprocessor.pm from WebCore. On Mac, this is a private header.
229         Teach xcodebuild how to compute WEBCORE_PRIVATE_HEADERS_DIR. This is copied
230         from WebKit2's configuration files.
231
232         * PlatformGTK.cmake: Added.
233         Add GTK image resources to the resource list. Generate GResource catalog and embedded
234         C file into DerivedSources. WebKit2 will copy over this file and compile it.
235
236         * Scripts/combine-resources.pl:
237         (concatenateFiles):
238         Remove the --strip option as this patch removes the only use of it.
239
240         * DerivedSources.make: Added.
241         Generate Test.html and Main.html from the new combined Inspector.html.in.
242         The 'preprocess_main_resource' rule was copied from WebCore's DerivedSources.make.
243
244         * Scripts/cssmin.py: Removed.
245         * Scripts/jsmin.py: Removed.
246         These scripts are copied from JavaScriptCore but nobody uses these copies. Remove them.
247
248         * Scripts/copy-user-interface-resources-dryrun.rb: Do some cleanup.
249         - Stage scripts from SRCROOT into the tmpdir so dryrun doesn't require
250           a previous build to process WebInspectorUI resources.
251         - Run DerivedSources.make before copying/processing resources.
252         - Add some environment variables for new phase and group by script affected.
253         - Add a comment to clarify what this script is simulating.
254
255         * Scripts/copy-user-interface-resources.pl:
256         - Use Main.html and Test.html from DerivedSources/ instead of SRCROOT.
257         - Copy over Main.html and Test.html manually if not combining resources.
258         - Remove the command to strip files from Debug/ for production. This is
259           now redundant with ENGINEERING_BUILD guards in Inspector.html.in.
260         - Use jsmin.py from JavaScriptCore instead of the local copy.
261         - Wrap all multi-argument 'system' invocations so they are readable.
262
263         * Scripts/generate-webinspectorui-derived-sources: Added.
264         Added boilerplate script to run DerivedSources.make for Mac port.
265
266         * Scripts/preprocess-main-resource.pl: Added.
267         Trivially invoke the preprocessor on $0 using the given defines.
268
269         * UserInterface/Inspector.html.in: Renamed from Source/WebInspectorUI/UserInterface/Main.html.
270         * UserInterface/Test.html: Removed.
271         Combine Test.html and Main.html into Inspector.html.in. Add these guards:
272         - INCLUDE_TEST_RESOURCES: for resources excluded from Main.html.
273         - INCLUDE_UI_RESOURCES: for resources excluded from model tests.
274         - ENGINEERING_BUILD: for resources not to be shipped (Debug/ directory).
275
276         * WebInspectorUI.xcodeproj/project.pbxproj:
277         - Add new aggregate target 'Derived Sources' to project 'WebInspectorUI'.
278         - Add dependency on 'Derived Sources' to WebInspectorUI.framework.
279         - Remove unused copies of jsmin.py and cssmin.py.
280
281 2016-09-03  Devin Rousso  <dcrousso+webkit@gmail.com>
282
283         Web Inspector: Change Cmd-D from kill line to selecting next occurrence
284         https://bugs.webkit.org/show_bug.cgi?id=161514
285
286         Reviewed by Brian Burg.
287
288         * UserInterface/Controllers/CodeMirrorTextKillController.js:
289         (WebInspector.CodeMirrorTextKillController):
290         (WebInspector.CodeMirrorTextKillController.prototype._handleTextChange):
291         Remove Cmd-D mapping.
292
293         * UserInterface/External/CodeMirror/sublime.js:
294         * UserInterface/Main.html:
295         Add Sublime Text keybinding support.
296
297         * UserInterface/Views/CodeMirrorAdditions.js:
298         Use Sublime text selectNextOccurrence for Cmd-D instead of deleteLine.
299
300 2016-09-03  Devin Rousso  <dcrousso+webkit@gmail.com>
301
302         Web Inspector: Add keyboard shortcut for switching to last used dock configuration
303         https://bugs.webkit.org/show_bug.cgi?id=110328
304
305         Reviewed by Brian Burg.
306
307         * UserInterface/Base/Main.js:
308         (WebInspector.contentLoaded):
309         (WebInspector.updateDockedState):
310         (WebInspector._togglePreviousDockConfiguration):
311         Added variable for saving the previous dock state, which is used by the new Cmd+Shift+D
312         shortcut to toggle the docked state between the current and previous states.
313
314         (WebInspector._undock):
315         (WebInspector._dockBottom):
316         (WebInspector._dockRight):
317         (WebInspector._updateDockNavigationItems):
318         (WebInspector._dockedResizerMouseDown):
319         (WebInspector._dockedResizerMouseDown.dockedResizerDrag):
320         Make use of new WebInspector.DockConfiguration instead of hardcoded strings.
321
322         (WebInspector.DockConfiguration):
323         Create enum for different WebInspector dock modes:
324          - Right
325          - Bottom
326          - Undocked
327
328 2016-09-03  Joseph Pecoraro  <pecoraro@apple.com>
329
330         Web Inspector: Address ESLint undefined variable errors
331         https://bugs.webkit.org/show_bug.cgi?id=161563
332
333         Reviewed by Darin Adler.
334
335         * UserInterface/Controllers/CSSStyleManager.js:
336         (WebInspector.CSSStyleManager.protocolMediaSourceToEnum):
337         * UserInterface/Models/IssueMessage.js:
338         (WebInspector.IssueMessage):
339         * UserInterface/Protocol/InspectorBackend.js:
340
341 2016-09-03  Joseph Pecoraro  <pecoraro@apple.com>
342
343         Web Inspector: Address ESLint undefined variable errors in UserInterface/Views
344         https://bugs.webkit.org/show_bug.cgi?id=161565
345
346         Reviewed by Darin Adler.
347
348         * UserInterface/Views/DataGrid.js:
349         (WebInspector.DataGrid.prototype.columnWidthsMap):
350         * UserInterface/Views/SourceCodeTextEditor.js:
351         (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
352         * UserInterface/Views/TextContentView.js:
353         (WebInspector.TextContentView.prototype._togglePrettyPrint):
354
355 2016-09-02  Joseph Pecoraro  <pecoraro@apple.com>
356
357         Web Inspector: Provide a way to open an inspector frontend for a remote target
358         https://bugs.webkit.org/show_bug.cgi?id=161515
359         <rdar://problem/13182127>
360
361         Reviewed by Brian Burg.
362
363         * UserInterface/Base/InspectorFrontendHostStub.js:
364         (WebInspector.InspectorFrontendHostStub.prototype.backendCommandsURL):
365         Stub new InspectorFrontendHost methods. This value causes the
366         frontend to load the latest protocol.
367
368         * UserInterface/Protocol/LoadInspectorBackendCommands.js:
369         Use formalized backendCommandsURL, and if empty load the latest protocol.
370
371 2016-09-02  Johan K. Jensen  <johan_jensen@apple.com>
372
373         Web Inspector: NetworkTimelineOverviewGraph.MinimumBarPaddingTime is undefined
374         https://bugs.webkit.org/show_bug.cgi?id=161510
375
376         Reviewed by Brian Burg.
377
378         * UserInterface/Views/NetworkTimelineOverviewGraph.js:
379         (WebInspector.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded):
380         (WebInspector.NetworkTimelineOverviewGraph):
381         Calculate the minimumBarPaddingTime in similar ways to TimelineRecordBar,
382         by using MinimumWidthPixel, MinimumMarginPixel and MinimumDurationPerPixel as the secondsPerPixel value.
383
384         * UserInterface/Views/TimelineOverview.js:
385         (WebInspector.TimelineOverview):
386         Make Minimum/MaximumDurationPerPixel public properties.
387
388 2016-09-01  Devin Rousso  <dcrousso+webkit@gmail.com>
389
390         Web Inspector: Add visual indicator for shadow content in DOM tree
391         https://bugs.webkit.org/show_bug.cgi?id=160874
392
393         Reviewed by Brian Burg.
394
395         * UserInterface/Views/DOMTreeElement.js:
396         (WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
397         (WebInspector.DOMTreeElement.prototype._buildTagDOM):
398         Moved "shadow" class to parent element to allow easier styling.
399
400         * UserInterface/Views/DOMTreeOutline.css:
401         (.tree-outline.dom):
402         (.tree-outline.dom li):
403         (.tree-outline.dom .shadow):
404         (.tree-outline.dom li.parent.shadow::after):
405         (.tree-outline.dom li.parent.shadow + ol.children.expanded):
406         (.tree-outline.dom .html-fragment.shadow): Deleted.
407
408 2016-09-01  Matt Baker  <mattbaker@apple.com>
409
410         Web Inspector: Value checks of secondsPerPixel cause errors
411         https://bugs.webkit.org/show_bug.cgi?id=161304
412         <rdar://problem/28050070>
413
414         Reviewed by Brian Burg.
415
416         * UserInterface/Views/NetworkTimelineView.js:
417         (WebInspector.NetworkTimelineView.prototype.reset):
418         Clear resource node map, which is used to determine which nodes
419         to refresh during layout.
420
421         (WebInspector.NetworkTimelineView.prototype.layout):
422         Like OverviewTimelineView, only refresh node graphs when times change.
423         This prevents refreshing nodes when (endTime - startTime) === 0.
424
425         * UserInterface/Views/TimelineRecordingContentView.js:
426         (WebInspector.TimelineRecordingContentView.prototype._recordingReset):
427         TimelineViews must be cleared before calling _updateTimes to avoid
428         doing layouts in timeline views containing stale data.
429
430 2016-09-01  Devin Rousso  <dcrousso+webkit@gmail.com>
431
432         Web Inspector: add Object.awaitEvent which is like singleFireEventListener but returns a promise
433         https://bugs.webkit.org/show_bug.cgi?id=161451
434
435         Reviewed by Brian Burg.
436
437         * UserInterface/Base/Object.js:
438         (WebInspector.Object.awaitEvent):
439         (WebInspector.Object.prototype.awaitEvent):
440
441 2016-09-01  Nikita Vasilyev  <nvasilyev@apple.com>
442
443         Web Inspector: Minification detection produces false positives for small resources
444         https://bugs.webkit.org/show_bug.cgi?id=161159
445         <rdar://problem/27995306>
446
447         Reviewed by Brian Burg.
448
449         Improve minification detection algorithm. Minified resources rarely have tabs and usually
450         have a very few line breaks. Counting tabs as 4 spaces and line breaks as 8 makes minification
451         detection heuristic more accurate. Increase ratio thresholds to accommodate for the changes in
452         whitespaceScore.
453
454         * UserInterface/Base/Utilities.js:
455         (isTextLikelyMinified):
456         * UserInterface/Views/SourceCodeTextEditor.js:
457         (WebInspector.SourceCodeTextEditor.prototype._prepareEditorForInitialContent):
458         (WebInspector.SourceCodeTextEditor.prototype._isLikelyMinified): Deleted.
459
460 2016-09-01  Nikita Vasilyev  <nvasilyev@apple.com>
461
462         REGRESSION (r201454): Web Inspector: Text caret isn't visible when editing an attribute
463         https://bugs.webkit.org/show_bug.cgi?id=160986
464         <rdar://problem/27916207>
465
466         Reviewed by Brian Burg.
467
468         * UserInterface/Views/DOMTreeOutline.css:
469         (.tree-outline.dom li .selection-area):
470         (.tree-outline.dom li > span):
471         Place selection area under the edited field, the way it was before r201454.
472
473 2016-09-01  Brian Burg  <bburg@apple.com>
474
475         Web Inspector: tweak one UIString for "reasons for compositing"
476         https://bugs.webkit.org/show_bug.cgi?id=161495
477         <rdar://problem/13718387>
478
479         Reviewed by Simon Fraser.
480
481         Change "Element establishes a stacking context" to "Element may overlap other compositing element".
482
483         * Localizations/en.lproj/localizedStrings.js:
484         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
485         (WebInspector.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons):
486         (WebInspector.LayerTreeDetailsSidebarPanel):
487
488 2016-08-30  Devin Rousso  <dcrousso+webkit@gmail.com>
489
490         Web Inspector: Remove largest common indentation spacing in debugger popover
491         https://bugs.webkit.org/show_bug.cgi?id=161417
492
493         Reviewed by Joseph Pecoraro.
494
495         * UserInterface/Views/SourceCodeTextEditor.css:
496         (.popover .debugger-popover-content.function > .body):
497         (.popover .debugger-popover-content.function > .body .CodeMirror):
498
499         * UserInterface/Views/SourceCodeTextEditor.js:
500         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
501         Use CodeMirror and FormatterWorker to display a non-editable popover.
502
503         * UserInterface/Workers/Formatter/FormatterWorker.js:
504         (FormatterWorker.prototype.formatJavaScript):
505         Reworked logic to always attempt to format by wrapping content in "(...)".  This is
506         necessary for unnamed functions, since they are not valid programs by themselves.
507
508 2016-08-30  Johan K. Jensen  <johan_jensen@apple.com>
509
510         Web Inspector: Add resource timing model with timing information
511         https://bugs.webkit.org/show_bug.cgi?id=161314
512
513         Reviewed by Joseph Pecoraro.
514
515         Add a resource timing data model and populate it with info from the
516         response from the backend.
517
518         * UserInterface/Controllers/FrameResourceManager.js:
519         (WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
520         (WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse):
521         Forward timing data from response to Resource.js.
522
523         * UserInterface/Main.html: Add new ResourceTimingData.js.
524         * UserInterface/Test.html: Add new ResourceTimingData.js.
525
526         * UserInterface/Models/Resource.js:
527         (WebInspector.Resource): Instantiate ResourceTimingData object.
528
529         (WebInspector.Resource.prototype.get timing):
530         (WebInspector.Resource.prototype.get firstTimestamp):
531         (WebInspector.Resource.prototype.get lastTimestamp):
532         (WebInspector.Resource.prototype.get duration):
533         (WebInspector.Resource.prototype.get latency):
534         (WebInspector.Resource.prototype.get receiveDuration):
535         Update getters to use new timing model.
536
537         (WebInspector.Resource.prototype.updateForResponse):
538         Update timing object with info from response.
539
540         (WebInspector.Resource.prototype.markAsFinished):
541         Log response end time.
542
543         * UserInterface/Models/ResourceTimelineRecord.js:
544         (WebInspector.ResourceTimelineRecord.prototype.get startTime):
545         (WebInspector.ResourceTimelineRecord.prototype.get activeStartTime):
546         (WebInspector.ResourceTimelineRecord.prototype.get endTime):
547         Update getters to use new timing model.
548
549         * UserInterface/Models/ResourceTimingData.js: Added.
550         (WebInspector.ResourceTimingData):
551         (WebInspector.ResourceTimingData.fromPayload):
552         (WebInspector.ResourceTimingData.prototype.get startTime):
553         (WebInspector.ResourceTimingData.prototype.get domainLookupStart):
554         (WebInspector.ResourceTimingData.prototype.get domainLookupEnd):
555         (WebInspector.ResourceTimingData.prototype.get connectStart):
556         (WebInspector.ResourceTimingData.prototype.get connectEnd):
557         (WebInspector.ResourceTimingData.prototype.get secureConnectionStart):
558         (WebInspector.ResourceTimingData.prototype.get requestStart):
559         (WebInspector.ResourceTimingData.prototype.get responseStart):
560         (WebInspector.ResourceTimingData.prototype.get responseEnd):
561         (WebInspector.ResourceTimingData.prototype.markResponseEndTime):
562         Add new ResourceTimingData model and fall back on old timestamps
563         for when data is unavailable.
564
565 2016-08-30  Alex Christensen  <achristensen@webkit.org>
566
567         Fix WebInspectorUI in internal Windows build
568         https://bugs.webkit.org/show_bug.cgi?id=161221
569         rdar://problem/28019023
570
571         Reviewed by Brent Fulgham and Joseph Pecoraro.
572
573         * WebInspectorUI.vcxproj/WebInspectorUI.make:
574         * WebInspectorUI.vcxproj/WebInspectorUI.proj:
575
576 2016-08-29  Devin Rousso  <dcrousso+webkit@gmail.com>
577
578         Web Inspector: Unify Resource entry context menus
579         https://bugs.webkit.org/show_bug.cgi?id=161301
580
581         Reviewed by Brian Burg.
582
583         * UserInterface/Main.html:
584         Add ContextMenuUtilities.
585
586         * UserInterface/Views/ContextMenuUtilities.js: Added.
587         (WebInspector.appendContextMenuItemsForResource):
588         Appends the following items to the given WebInspector.ContextMenu object with a WebInspector.Resource:
589          - Open in New Tab
590          - Copy Link Address
591          - Copy as cURL (only if the resource is not from a data URL)
592          - Save File
593
594         * UserInterface/Views/ResourceTimelineDataGridNode.js:
595         (WebInspector.ResourceTimelineDataGridNode.prototype.appendContextMenuItems):
596         Make use of new WebInspector.appendContextMenuItemsForResource.
597
598         * UserInterface/Views/ResourceTreeElement.js:
599         (WebInspector.ResourceTreeElement.prototype._handleContextMenuEvent):
600         Make use of new WebInspector.appendContextMenuItemsForResource.
601
602 2016-08-27  Joseph Pecoraro  <pecoraro@apple.com>
603
604         Web Inspector: Make localizedString.js diff and commit friendly (UTF16 -> UTF8)
605         https://bugs.webkit.org/show_bug.cgi?id=28685
606         <rdar://problem/16460975>
607
608         Reviewed by Darin Adler.
609
610         * Localizations/en.lproj/localizedStrings.js:
611         * WebInspectorUI.xcodeproj/project.pbxproj:
612         Convert the file to UTF-8. Future diffs should display as text.
613
614 2016-08-26  Joseph Pecoraro  <pecoraro@apple.com>
615
616         Web Inspector: Add protocol version for iOS 10
617         https://bugs.webkit.org/show_bug.cgi?id=161266
618         <rdar://problem/28036594>
619
620         Rubber-stamped by Brian Burg.
621
622         * Localizations/en.lproj/localizedStrings.js:
623         Update missing localized strings.
624
625         * Versions/Inspector-iOS-10.0.json: Added.
626         Protocol for iOS 10.
627
628         * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
629         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
630         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
631         * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
632         * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
633         Re-generate the legacy backend commands files.
634
635 2016-08-25  Joseph Pecoraro  <pecoraro@apple.com>
636
637         Web Inspector: Show IndexedDB Database/ObjectStore/Index data in a details sidebar
638         https://bugs.webkit.org/show_bug.cgi?id=161180
639         <rdar://problem/28003417>
640
641         Reviewed by Brian Burg.
642
643         * Localizations/en.lproj/localizedStrings.js:
644         * UserInterface/Main.html:
645         New strings and file.
646
647         * UserInterface/Base/Main.js:
648         (WebInspector.contentLoaded):
649         Instantiate the global details sidebar.
650
651         * UserInterface/Views/StorageTabContentView.js:
652         (WebInspector.StorageTabContentView):
653         Include the new details sidebar in the Storage tab.
654
655         * UserInterface/Controllers/StorageManager.js:
656         (WebInspector.StorageManager.prototype._addIndexedDBDatabasesIfNeeded.processKeyPath):
657         Use the protocol generated types.
658
659         * UserInterface/Views/IndexedDatabaseDetailsSidebarPanel.js: Added.
660         (WebInspector.IndexedDatabaseDetailsSidebarPanel):
661         (WebInspector.IndexedDatabaseDetailsSidebarPanel.prototype.inspect):
662         (WebInspector.IndexedDatabaseDetailsSidebarPanel.prototype.layout):
663         (WebInspector.IndexedDatabaseDetailsSidebarPanel.prototype._keyPathString):
664         Show the sidebar for an IndexedDatabase, ObjectStore, or Index.
665         Show each section if we can based on the objects we have.
666
667 2016-08-25  Joseph Pecoraro  <pecoraro@apple.com>
668
669         Web Inspector: Provide a way to clear an IndexedDB object store
670         https://bugs.webkit.org/show_bug.cgi?id=161167
671         <rdar://problem/27996932>
672
673         Reviewed by Brian Burg.
674
675         * Localizations/en.lproj/localizedStrings.js:
676         "Clear object store".
677
678         * UserInterface/Controllers/StorageManager.js:
679         (WebInspector.StorageManager.prototype.clearObjectStore):
680         Provide a wrapper for clearing an object store.
681
682         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
683         (WebInspector.IndexedDatabaseObjectStoreContentView):
684         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype.get navigationItems):
685         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._clearButtonClicked):
686         Add a navigation button on ObjectStore content views to clear the object store.
687
688 2016-08-26  Devin Rousso  <dcrousso+webkit@gmail.com>
689
690         Web Inspector: Some CSS selectors in the UI aren't escaped
691         https://bugs.webkit.org/show_bug.cgi?id=151378
692
693         Reviewed by Joseph Pecoraro.
694
695         * UserInterface/Base/DOMUtilities.js:
696         (WebInspector.displayNameForNode): Deleted.
697         (WebInspector.linkifyNodeReference):
698         Use DOMNode.prototype.displayName instead of WebInspector.displayNameForNode.
699
700         * UserInterface/Models/DOMNode.js:
701         (WebInspector.DOMNode.prototype.get escapedIdSelector):
702         (WebInspector.DOMNode.prototype.get escapedClassSelector):
703         (WebInspector.DOMNode.prototype.get displayName):
704         (WebInspector.DOMNode.prototype.appropriateSelectorFor):
705         Rework escaping of ids and class names into separate public functions using CSS.escape.
706
707         * UserInterface/Views/CSSStyleDeclarationSection.js:
708         (WebInspector.CSSStyleDeclarationSection.prototype.refresh):
709         Use DOMNode.prototype.displayName instead of WebInspector.displayNameForNode.
710
711         * UserInterface/Views/DOMTreeDataGridNode.js:
712         (WebInspector.DOMTreeDataGridNode.prototype._createNameCellDocumentFragment):
713         Use DOMNode.prototype.displayName instead of WebInspector.displayNameForNode.
714
715         * UserInterface/Views/DOMTreeElementPathComponent.js:
716         (WebInspector.DOMTreeElementPathComponent):
717         Use DOMNode.prototype.displayName instead of WebInspector.displayNameForNode.
718
719         * UserInterface/Views/LayerTreeDataGridNode.js:
720         (WebInspector.LayerTreeDataGridNode.prototype.set layer):
721         Use DOMNode.prototype.displayName instead of WebInspector.displayNameForNode.
722
723         * UserInterface/Views/VisualStyleSelectorSection.js:
724         (WebInspector.VisualStyleSelectorSection.prototype.update):
725         Use DOMNode.prototype.displayName instead of WebInspector.displayNameForNode.
726
727 2016-08-24  Matt Baker  <mattbaker@apple.com>
728
729         Web Inspector: unexpected cursor changes while dragging ruler handle in rendering frames timeline
730         https://bugs.webkit.org/show_bug.cgi?id=161101
731         <rdar://problem/27974117>
732
733         Reviewed by Brian Burg.
734
735         -webkit-grab(bing) cursor styles shouldn't be applied to the selection
736         drag element when resizing.
737
738         * UserInterface/Views/TimelineRuler.css:
739         (.timeline-ruler:not(.disabled, .resizing-selection) > .selection-drag):
740         (.timeline-ruler:not(.disabled, .resizing-selection) > .selection-drag:active):
741         (.timeline-ruler:not(.disabled) > .selection-drag): Deleted.
742         (.timeline-ruler:not(.disabled) > .selection-drag:active): Deleted.
743
744 2016-08-24  Devin Rousso  <dcrousso+webkit@gmail.com>
745
746         Web Inspector: Shift-Tab should unindent selected line
747         https://bugs.webkit.org/show_bug.cgi?id=159316
748
749         Reviewed by Joseph Pecoraro.
750
751         * UserInterface/Views/CodeMirrorAdditions.js:
752         (CodeMirror.keyMap["default"]):
753         Changed "Shift-Tab" mapping to "indentLess".
754
755 2016-08-23  Devin Rousso  <dcrousso+webkit@gmail.com>
756
757         Web Inspector: resource tree elements should provide "Download File" context menu items
758         https://bugs.webkit.org/show_bug.cgi?id=158035
759
760         Reviewed by Joseph Pecoraro.
761
762         Add a context menu item to elements representing resources that
763         initiates a download of that resource.
764
765         * Localizations/en.lproj/localizedStrings.js:
766
767         * UserInterface/Base/Main.js:
768         (WebInspector.saveDataToFile):
769         Add support for saving base64 objects.
770
771         * UserInterface/Base/MIMETypeUtilities.js:
772         (WebInspector.fileExtensionForMIMEType):
773         Returns a file extension for the given MIME type if able.
774
775         * UserInterface/Views/FrameTreeElement.js:
776         (WebInspector.FrameTreeElement.prototype.onattach):
777         Add contextmenu event listener since superclass onattach call is explicitly not used.
778
779         * UserInterface/Views/ResourceTimelineDataGridNode.js:
780         (WebInspector.ResourceTimelineDataGridNode.prototype.appendContextMenuItems):
781         Add Save File context menu item.
782
783         * UserInterface/Views/ResourceTreeElement.js:
784         (WebInspector.ResourceTreeElement.prototype.onattach):
785         (WebInspector.ResourceTreeElement.prototype._handleContextMenuEvent):
786         Add contextmenu event listener and Save File context menu item.
787
788 2016-08-23  Devin Rousso  <dcrousso+webkit@gmail.com>
789
790         Web Inspector: No open/copy src resource in context menu
791         https://bugs.webkit.org/show_bug.cgi?id=159028
792
793         Reviewed by Joseph Pecoraro.
794
795         * Localizations/en.lproj/localizedStrings.js:
796
797         * UserInterface/Views/DOMTreeElement.js:
798         (WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
799         Add options in the context menu of link attributes of DOM nodes to
800          - Open in New Tab
801          - Reveal in Resources Tab
802          - Copy Link Address
803
804 2016-08-23  Devin Rousso  <dcrousso+webkit@gmail.com>
805
806         Web Inspector: Add visual editor for spring() timing-function
807         https://bugs.webkit.org/show_bug.cgi?id=159315
808
809         Reviewed by Joseph Pecoraro.
810
811         * Localizations/en.lproj/localizedStrings.js:
812         * UserInterface/Main.html:
813
814         * UserInterface/Base/Utilities.js:
815         (Number.prototype.maxDecimals):
816         Limits the number of decimals for the number object via rounding.
817
818         * UserInterface/Controllers/CodeMirrorSpringEditingController.js:
819         (WebInspector.CodeMirrorSpringEditingController.prototype.get initialValue):
820         (WebInspector.CodeMirrorSpringEditingController.prototype.get cssClassName):
821         (WebInspector.CodeMirrorSpringEditingController.prototype.popoverWillPresent):
822         (WebInspector.CodeMirrorSpringEditingController.prototype.popoverDidPresent):
823         (WebInspector.CodeMirrorSpringEditingController.prototype.popoverDidDismiss):
824         (WebInspector.CodeMirrorSpringEditingController.prototype._springEditorSpringChanged):
825         Controller for Spring editors inside CodeMirror instances.
826
827         * UserInterface/Models/Geometry.js:
828         (WebInspector.Spring):
829         (WebInspector.Spring.fromValues):
830         (WebInspector.Spring.fromString):
831         (WebInspector.Spring.prototype.copy):
832         (WebInspector.Spring.prototype.toString):
833         (WebInspector.Spring.prototype.solve):
834         (WebInspector.Spring.prototype.calculateDuration):
835         Spring data class based on <https://webkit.org/demos/spring/>.
836
837         * UserInterface/Models/TextMarker.js:
838         (WebInspector.TextMarker.Type):
839         Added Spring marker type.
840
841         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
842         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches):
843         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches.update):
844         (WebInspector.CSSStyleDeclarationTextEditor.prototype._inlineSwatchValueChanged):
845         (WebInspector.CSSStyleDeclarationTextEditor.prototype._inlineSwatchValueChanged.update):
846
847         * UserInterface/Views/CodeMirrorTextMarkers.js:
848         (createCodeMirrorSpringTextMarkers):
849
850         * UserInterface/Views/InlineSwatch.css:
851         (.inline-swatch:matches(.bezier, .spring)):
852         (.inline-swatch:matches(.bezier, .spring):hover):
853         (.inline-swatch:matches(.bezier, .spring):active):
854         (.inline-swatch:matches(.bezier, .spring) > span):
855         (.inline-swatch.bezier): Deleted.
856         (.inline-swatch.bezier:hover): Deleted.
857         (.inline-swatch.bezier:active): Deleted.
858         (.inline-swatch.bezier > span): Deleted.
859
860         * UserInterface/Views/InlineSwatch.js:
861         (WebInspector.InlineSwatch):
862         (WebInspector.InlineSwatch.prototype._fallbackValue):
863         (WebInspector.InlineSwatch.prototype._swatchElementClicked):
864         (WebInspector.InlineSwatch.prototype._valueEditorValueDidChange):
865         (WebInspector.InlineSwatch.Type):
866         Added support for Spring editor Inline Swatches.
867
868         * UserInterface/Views/SourceCodeTextEditor.js:
869         (WebInspector.SourceCodeTextEditor.prototype._updateEditableMarkers):
870         (WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
871
872         * UserInterface/Views/SpringEditor.css:
873         (.spring-editor):
874         (.spring-editor > .spring-preview):
875         (.spring-editor > .spring-preview > div):
876         (.spring-editor > .spring-timing):
877         (.spring-editor > .spring-timing > div):
878         (.spring-editor > .spring-timing:matches(::before, ::after)):
879         (.spring-editor > .spring-timing::before):
880         (.spring-editor > .spring-timing::after):
881         (.spring-editor > :matches(.spring-preview, .spring-timing) > div):
882         (.spring-editor > .animate:matches(.spring-preview, .spring-timing) > div):
883         (.spring-editor > .number-input-container > .number-input-row):
884         (.spring-editor > .number-input-container > .number-input-row > .number-input-row-title):
885         (.spring-editor > .number-input-container > .number-input-row > input):
886         (.spring-editor > .number-input-container > .number-input-row > input[type="range"]):
887
888         * UserInterface/Views/SpringEditor.js:
889         (WebInspector.SpringEditor):
890         (WebInspector.SpringEditor.prototype.get element):
891         (WebInspector.SpringEditor.prototype.set spring):
892         (WebInspector.SpringEditor.prototype.get spring):
893         (WebInspector.SpringEditor.prototype._handleNumberInputInput):
894         (WebInspector.SpringEditor.prototype._handleNumberInputKeydown):
895         (WebInspector.SpringEditor.prototype._handleNumberSliderInput):
896         (WebInspector.SpringEditor.prototype._handleNumberSliderMousedown):
897         (WebInspector.SpringEditor.prototype._handleNumberSliderMouseup):
898         (WebInspector.SpringEditor.prototype._changeSpringForInput):
899         (WebInspector.SpringEditor.prototype._resetPreviewAnimation):
900         (WebInspector.SpringEditor.prototype._updatePreviewAnimation):
901         (WebInspector.SpringEditor.Event):
902         Visual editor for CSS Spring timing function values.  Organized into 5 rows:
903          - Preview: shows movement of spring and total duration
904          - Mass: slider and input for "mass" parameter
905          - Stiffness: slider and input for "stiffness" parameter
906          - Damping: slider and input for "damping" parameter
907          - Initial Velocity: slider and input for "initial velocity" parameter
908         The preview animation will loop indefinitely until the user clicks the animation row
909         or changes the value of one of the parameters, at which point the duration will also
910         be recalculated.
911
912         * UserInterface/Views/TextEditor.js:
913         (WebInspector.TextEditor.prototype.createSpringMarkers):
914         (WebInspector.TextEditor.prototype.editingControllerForMarker):
915
916         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
917         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set value):
918         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._generateTextFromLonghandProperties):
919         Add support for CSS spring timing functions by allowing parenthesis in comma separated
920         values so long as there are no commas inside the parenthesis.
921
922         * UserInterface/Views/VisualStyleTimingEditor.css:
923         (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .inline-swatch:matches(.bezier, .spring)):
924         (.visual-style-property-container.timing-editor > .visual-style-property-value-container:not(.spring-value) > .inline-swatch.spring):
925         (.visual-style-property-container.timing-editor > .visual-style-property-value-container > .inline-swatch.bezier): Deleted.
926         (.visual-style-property-container.timing-editor > .visual-style-property-value-container:not(.bezier-value) > .inline-swatch.bezier): Deleted.
927
928         * UserInterface/Views/VisualStyleTimingEditor.js:
929         (WebInspector.VisualStyleTimingEditor):
930         (WebInspector.VisualStyleTimingEditor.prototype.get value):
931         (WebInspector.VisualStyleTimingEditor.prototype.set value):
932         (WebInspector.VisualStyleTimingEditor.prototype.get synthesizedValue):
933         (WebInspector.VisualStyleTimingEditor.prototype.parseValue):
934         (WebInspector.VisualStyleTimingEditor.prototype.get _bezierValue):
935         (WebInspector.VisualStyleTimingEditor.prototype.set _bezierValue):
936         (WebInspector.VisualStyleTimingEditor.prototype.get _springValue):
937         (WebInspector.VisualStyleTimingEditor.prototype.set _springValue):
938         (WebInspector.VisualStyleTimingEditor.prototype._handleKeywordChanged):
939         (WebInspector.VisualStyleTimingEditor.prototype._springSwatchValueChanged):
940         (WebInspector.VisualStyleTimingEditor.prototype.get bezierValue): Renamed.
941         (WebInspector.VisualStyleTimingEditor.prototype.set bezierValue): Renamed.
942         Duplicate Bezier custom timing function logic for Spring timing functions.
943
944 2016-08-22  Devin Rousso  <dcrousso+webkit@gmail.com>
945
946         Web Inspector: Styles -> Computed -> Box Model shows NaN x NaN for invisible elements
947         https://bugs.webkit.org/show_bug.cgi?id=161038
948
949         Reviewed by Joseph Pecoraro.
950
951         * UserInterface/Base/Utilities.js:
952         Add figureDash variable.
953
954         * UserInterface/Views/BoxModelDetailsSectionRow.js:
955         (WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createElement):
956         (WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createBoxPartElement):
957         Moved isNaN check of value to common createElement.
958
959 2016-08-22  Devin Rousso  <dcrousso+webkit@gmail.com>
960
961         Web Inspector: Visual styles sidebar should do something sane for SVG elements
962         https://bugs.webkit.org/show_bug.cgi?id=148269
963
964         Reviewed by Joseph Pecoraro.
965
966         * Localizations/en.lproj/localizedStrings.js:
967
968         * UserInterface/Models/DOMNode.js:
969         (WebInspector.DOMNode.prototype.get ownerSVGElement):
970         (WebInspector.DOMNode.prototype.isSVGElement):
971         Climbs ancestor tree to determine if node is an SVG node.
972
973         * UserInterface/Views/VisualStyleDetailsPanel.js:
974         (WebInspector.VisualStyleDetailsPanel.prototype.initialLayout):
975         (WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
976         (WebInspector.VisualStyleDetailsPanel.prototype._populatePositionSection):
977         (WebInspector.VisualStyleDetailsPanel.prototype._populateDimensionsSection):
978         (WebInspector.VisualStyleDetailsPanel.prototype._populateContentSection):
979         (WebInspector.VisualStyleDetailsPanel.prototype._populateFillSection):
980         (WebInspector.VisualStyleDetailsPanel.prototype._populateStrokeSection):
981
982         * UserInterface/Views/VisualStylePropertyEditor.css:
983         (.visual-style-property-container.inactive):
984         (.visual-style-property-container > *:first-child:matches(.visual-style-property-value-container)):
985
986         * UserInterface/Views/VisualStyleRelativeNumberSlider.css:
987         (.visual-style-property-container.number-input-box.relative-number-slider > .relative-slider):
988
989         * UserInterface/Views/VisualStyleUnitSlider.css:
990         (.visual-style-property-container.unit-slider > .visual-style-property-value-container > .slider):
991         (.visual-style-property-container.unit-slider.opacity > .visual-style-property-value-container > .slider): Deleted.
992
993 2016-08-22  Devin Rousso  <dcrousso+webkit@gmail.com>
994
995         Web Inspector: Visual Styles: "Text -> Content" section should only be visible for pseudo-element
996         https://bugs.webkit.org/show_bug.cgi?id=158272
997
998         Reviewed by Joseph Pecoraro.
999
1000         * Localizations/en.lproj/localizedStrings.js:
1001
1002         * UserInterface/Views/VisualStyleDetailsPanel.css:
1003         (.sidebar > .panel.details.css-style .visual > .details-section :matches(.details-section, .group).inactive):
1004         (.sidebar > .panel.details.css-style .visual > .details-section :matches(.details-section, .group).inactive > *):
1005         (.visual-style-property-container.transition): Deleted.
1006         (.visual-style-property-container.animation): Deleted.
1007
1008         * UserInterface/Views/VisualStyleDetailsPanel.js:
1009         (WebInspector.VisualStyleDetailsPanel.prototype.initialLayout):
1010         (WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
1011         (WebInspector.VisualStyleDetailsPanel.prototype._populateContentSection):
1012
1013 2016-08-22  Devin Rousso  <dcrousso+webkit@gmail.com>
1014
1015         Web Inspector: Entering ":n" in Open Resource Dialog, where n > number of lines, should jump to the last line
1016         https://bugs.webkit.org/show_bug.cgi?id=160840
1017
1018         Reviewed by Joseph Pecoraro.
1019
1020         * UserInterface/Views/TextEditor.js:
1021         (TextEditor.prototype.revealPosition):
1022         Limit the given line and column to the maximum number of lines and the column count on the
1023         resulting line.
1024
1025 2016-08-22  Devin Rousso  <dcrousso+webkit@gmail.com>
1026
1027         Web Inspector: Add indicator to matched selector being a pseudo-element
1028         https://bugs.webkit.org/show_bug.cgi?id=160893
1029
1030         Reviewed by Joseph Pecoraro.
1031
1032         Instead of using "{}" icons for CSS rules, use a "P" icon with the same coloring to identify
1033         that the rule contains a pseudo-selector that is currently being applied to the selected element.
1034
1035         * UserInterface/Base/Utilities.js:
1036         (Array.prototype.toggleIncludes):
1037         Toggles whether or not to include the given value in the array based on its existence or a
1038         "force" flag parameter.
1039
1040         * UserInterface/Images/StyleRuleAuthorPseudo.svg:
1041         * UserInterface/Images/StyleRuleInspectorPseudo.svg:
1042         * UserInterface/Images/StyleRuleUserAgentPseudo.svg:
1043         * UserInterface/Images/StyleRuleUserPseudo.svg:
1044
1045         * UserInterface/Models/CSSRule.js:
1046         (WebInspector.CSSRule.prototype.hasMatchedPseudoElementSelector):
1047
1048         * UserInterface/Models/CSSSelector.js:
1049         (WebInspector.CSSSelector.prototype.isPseudoElementSelector):
1050
1051         * UserInterface/Views/CSSStyleDeclarationSection.js:
1052         (WebInspector.CSSStyleDeclarationSection.prototype.refresh):
1053
1054         * UserInterface/Views/StyleRuleIcons.css:
1055         (.author-style-rule-icon.pseudo-element-selector .icon):
1056         (.user-style-rule-icon.pseudo-element-selector .icon):
1057         (.user-agent-style-rule-icon.pseudo-element-selector .icon):
1058         (.inspector-style-rule-icon.pseudo-element-selector .icon):
1059
1060          * UserInterface/Views/VisualStyleSelectorTreeItem.js:
1061         (WebInspector.VisualStyleSelectorTreeItem):
1062         (WebInspector.VisualStyleSelectorTreeItem.prototype.get iconClassName):
1063         (WebInspector.VisualStyleSelectorTreeItem.prototype._updateSelectorIcon):
1064
1065 2016-08-19  Nikita Vasilyev  <nvasilyev@apple.com>
1066
1067         Web Inspector: Make an icon for Code Coverage Profiler
1068         https://bugs.webkit.org/show_bug.cgi?id=160872
1069         <rdar://problem/27855650>
1070
1071         Reviewed by Joseph Pecoraro.
1072
1073         Add a "C" icon, similar to the existing "T" (Type Profiler) icon.
1074         "C" can stand for Code Coverage or Control Flow.
1075
1076         * UserInterface/Images/NavigationItemCodeCoverage.svg: Added.
1077
1078 2016-08-19  Devin Rousso  <dcrousso+webkit@gmail.com>
1079
1080         Web Inspector: Console log counter on the dashboard should be better at displaying large numbers
1081         https://bugs.webkit.org/show_bug.cgi?id=160054
1082
1083         Reviewed by Matt Baker.
1084
1085         * Localizations/en.lproj/localizedStrings.js:
1086
1087         * UserInterface/Base/Utilities.js:
1088         (Number.abbreviate):
1089         Add logic for formatting a number as "#K", "#M", and "#B" when it is very large.
1090
1091         * UserInterface/Views/DefaultDashboardView.js:
1092         (WebInspector.DefaultDashboardView.prototype._updateDisplay):
1093         (WebInspector.DefaultDashboardView.prototype._formatPossibleLargeNumber): Deleted.
1094         (WebInspector.DefaultDashboardView.prototype._setConsoleItemValue):
1095
1096 2016-08-17  Matt Baker  <mattbaker@apple.com>
1097
1098         Web Inspector: Network Tab should not layout if not visible
1099         https://bugs.webkit.org/show_bug.cgi?id=160920
1100         <rdar://problem/27876629>
1101
1102         Reviewed by Timothy Hatcher.
1103
1104         Avoid updating the current time when the Network tab is hidden.
1105         The timer, and any debounced timer cancellations, need to be stopped
1106         as soon as the view is hidden.
1107
1108         * UserInterface/Views/NetworkGridContentView.js:
1109         (WebInspector.NetworkGridContentView.prototype.hidden):
1110         (WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
1111         (WebInspector.NetworkGridContentView.prototype._stopUpdatingCurrentTime):
1112         (WebInspector.NetworkGridContentView):
1113
1114 2016-08-17  Devin Rousso  <dcrousso+webkit@gmail.com>
1115
1116         Web Inspector: Select elements in DOM hierarchy are misaligned
1117         https://bugs.webkit.org/show_bug.cgi?id=160885
1118
1119         Reviewed by Timothy Hatcher.
1120
1121         * UserInterface/Views/HierarchicalPathComponent.css:
1122         (.hierarchical-path-component > select):
1123
1124 2016-08-17  Devin Rousso  <dcrousso+webkit@gmail.com>
1125
1126         Web Inspector: rapid updates to status icons in Visual Styles sidebar causes flicker
1127         https://bugs.webkit.org/show_bug.cgi?id=160887
1128
1129         Reviewed by Timothy Hatcher.
1130
1131         * UserInterface/Views/VisualStyleBasicInput.js:
1132         (WebInspector.VisualStyleBasicInput):
1133
1134         * UserInterface/Views/VisualStyleColorPicker.js:
1135         (WebInspector.VisualStyleColorPicker):
1136
1137         * UserInterface/Views/VisualStyleNumberInputBox.js:
1138         (WebInspector.VisualStyleNumberInputBox):
1139         (WebInspector.VisualStyleNumberInputBox.prototype._valueNumberInputKeyDown):
1140
1141         * UserInterface/Views/VisualStylePropertyNameInput.js:
1142         (WebInspector.VisualStylePropertyNameInput):
1143
1144 2016-08-16  Nikita Vasilyev  <nvasilyev@apple.com>
1145
1146         Web Inspector: DOM nodes shift when hovering over them in Console
1147         https://bugs.webkit.org/show_bug.cgi?id=160789
1148         <rdar://problem/27815600>
1149
1150         Reviewed by Matt Baker.
1151
1152         * UserInterface/Views/FormattedValue.css:
1153         (.formatted-node > .tree-outline.dom ol): Deleted.
1154
1155 2016-08-16  Nikita Vasilyev  <nvasilyev@apple.com>
1156
1157         Web Inspector: Data grid has a double left border when the first column is hidden
1158         https://bugs.webkit.org/show_bug.cgi?id=160723
1159         <rdar://problem/27778081>
1160
1161         Reviewed by Timothy Hatcher.
1162
1163         This patch exploits the fact hiding columns that aren't first in DataGrid don't create double
1164         borders.
1165
1166         * UserInterface/Views/DataGrid.css:
1167         (.data-grid table.header,):
1168         (.data-grid :matches(th, td):first-child):
1169         (@media (-webkit-min-device-pixel-ratio: 2)):
1170         * UserInterface/Views/SourceCodeTextEditor.js:
1171         (WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
1172
1173 2016-08-16  Joseph Pecoraro  <pecoraro@apple.com>
1174
1175         Web Inspector: Do not request Scope Chain lists if section is collapsed (mainly Global Variables)
1176         https://bugs.webkit.org/show_bug.cgi?id=140567
1177         <rdar://problem/19504745>
1178
1179         Reviewed by Timothy Hatcher.
1180
1181         * UserInterface/Main.html:
1182         New file name.
1183
1184         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
1185         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.fillSection):
1186         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties):
1187         Avoid fetching object properties until the user expands the section.
1188
1189         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
1190         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
1191         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection):
1192         Avoid fetching scope variable properties until the user expands the section.
1193
1194         * UserInterface/Views/ObjectPropertiesDetailSectionRow.js: Renamed from Source/WebInspectorUI/UserInterface/Views/DetailsSectionPropertiesRow.js.
1195         (WebInspector.ObjectPropertiesDetailSectionRow):
1196         (WebInspector.ObjectPropertiesDetailSectionRow.prototype.get objectTree):
1197         (WebInspector.ObjectPropertiesDetailSectionRow.prototype._detailsSectionCollapsedStateChanged):
1198         Rename and simplify the class since it always has an ObjectTreeView.
1199         By default the section will auto-expand the ObjectTreeView, however
1200         if provided a details section group, it will defer expanion until
1201         the group expands.
1202
1203 2016-08-16  Devin Rousso  <dcrousso+webkit@gmail.com>
1204
1205         Web Inspector: add "Copy Selected" context menu item to Console
1206         https://bugs.webkit.org/show_bug.cgi?id=151836
1207
1208         Reviewed by Timothy Hatcher.
1209
1210         * Localizations/en.lproj/localizedStrings.js:
1211         * UserInterface/Views/LogContentView.js:
1212         (WebInspector.LogContentView.prototype._previousMessageRepeatCountUpdated):
1213         (WebInspector.LogContentView.prototype._handleContextMenuEvent):
1214         (WebInspector.LogContentView.prototype._mousedown):
1215
1216 2016-08-16  Devin Rousso  <dcrousso+webkit@gmail.com>
1217
1218         Web Inspector: Visual Styles: "Text -> Content" isn't escaped
1219         https://bugs.webkit.org/show_bug.cgi?id=158271
1220
1221         Reviewed by Timothy Hatcher.
1222
1223         * UserInterface/Base/Utilities.js:
1224         (String.prototype.hasMatchingEscapedQuotes):
1225         Checks that the given string has property escaped quotes (single or double).
1226
1227         * UserInterface/Views/VisualStyleBasicInput.js:
1228         (WebInspector.VisualStyleBasicInput):
1229         (WebInspector.VisualStyleBasicInput.prototype._handleInputElementInput):
1230
1231 2016-08-16  Joseph Pecoraro  <pecoraro@apple.com>
1232
1233         Modernize model objects simple getters
1234         https://bugs.webkit.org/show_bug.cgi?id=160863
1235
1236         Reviewed by Timothy Hatcher.
1237
1238         Simplify the style of many Model objects with basic accessors.
1239         We reduce them to a single line and group them together so
1240         that they can be more easily read at a glance.
1241
1242         * UserInterface/Models/AnalyzerMessage.js:
1243         * UserInterface/Models/ApplicationCacheFrame.js:
1244         * UserInterface/Models/ApplicationCacheManifest.js:
1245         * UserInterface/Models/BreakpointAction.js:
1246         * UserInterface/Models/CSSMedia.js:
1247         * UserInterface/Models/CSSSelector.js:
1248         * UserInterface/Models/CollectionEntry.js:
1249         * UserInterface/Models/CollectionEntryPreview.js:
1250         * UserInterface/Models/DOMStorageObject.js:
1251         * UserInterface/Models/DatabaseObject.js:
1252         * UserInterface/Models/DatabaseTableObject.js:
1253         * UserInterface/Models/ExecutionContext.js:
1254         * UserInterface/Models/GarbageCollection.js:
1255         * UserInterface/Models/IndexedDatabase.js:
1256         * UserInterface/Models/IndexedDatabaseObjectStore.js:
1257         * UserInterface/Models/IndexedDatabaseObjectStoreIndex.js:
1258         * UserInterface/Models/ObjectPreview.js:
1259         * UserInterface/Models/ProbeSet.js:
1260         * UserInterface/Models/PropertyDescriptor.js:
1261         * UserInterface/Models/PropertyPath.js:
1262         * UserInterface/Models/PropertyPreview.js:
1263         * UserInterface/Models/SourceCodePosition.js:
1264         * UserInterface/Models/SourceCodeSearchMatchObject.js:
1265         * UserInterface/Models/SourceCodeTimeline.js:
1266         * UserInterface/Models/StructureDescription.js:
1267         * UserInterface/Models/TextRange.js:
1268         * UserInterface/Models/Timeline.js:
1269         * UserInterface/Models/TimelineRecording.js:
1270         * UserInterface/Models/TypeDescription.js:
1271
1272 2016-08-15  Devin Rousso  <dcrousso+webkit@gmail.com>
1273
1274         Web Inspector: Large class lists are not easily discoverable with "Classes" quick-toggle
1275         https://bugs.webkit.org/show_bug.cgi?id=160856
1276
1277         Reviewed by Joseph Pecoraro.
1278
1279         * UserInterface/Base/DOMUtilities.js:
1280         (WebInspector.linkifyNodeReference):
1281         Add option to truncate the text of the linkified node.
1282
1283         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
1284         (.sidebar > .panel.details.css-style > .content ~ .class-list-container):
1285         Increase the max-height to partially show additional classes if many are set.
1286
1287         * UserInterface/Views/RulesStyleDetailsPanel.js:
1288         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
1289         Trucate the name of inherited nodes so they don't take up as much space in the sidebar.
1290
1291         * UserInterface/Views/VisualStyleSelectorSection.css:
1292         (.details-section.visual-style-selector-section > .header > .current-selector): Deleted.
1293         (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .titles): Deleted.
1294         Removed since they are already inherited.
1295
1296 2016-08-15  Devin Rousso  <dcrousso+webkit@gmail.com>
1297
1298         Web Inspector: Close button on selected item in Network tab is misaligned
1299         https://bugs.webkit.org/show_bug.cgi?id=160884
1300
1301         Reviewed by Matt Baker.
1302
1303         * UserInterface/Views/NetworkSidebarPanel.css:
1304         (.sidebar > .panel.navigation.network .status .close.status-button):
1305
1306 2016-08-15  Devin Rousso  <dcrousso+webkit@gmail.com>
1307
1308         Web Inspector: Error/Warning icons are misplaced in the Visual sidebar
1309         https://bugs.webkit.org/show_bug.cgi?id=160875
1310
1311         Reviewed by Matt Baker.
1312
1313         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
1314         (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-special-property-placeholder): Deleted.
1315         Reworked to apply more generally to editors without titles.
1316
1317         * UserInterface/Views/VisualStylePropertyEditor.css:
1318         (.visual-style-property-container.missing-dependency > .visual-style-property-editor-warning):
1319         (.visual-style-property-container.invalid-value > .visual-style-property-editor-warning):
1320         (.visual-style-property-container:matches(.missing-dependency, .invalid-value) > *:first-child:matches(.visual-style-property-value-container)):
1321         (.visual-style-property-container > *:first-child:matches(.visual-style-property-value-container) > .visual-style-special-property-placeholder):
1322         (.visual-style-property-container > .visual-style-property-editor-warning.missing-dependency): Deleted.
1323         (.visual-style-property-container > .visual-style-property-editor-warning.invalid-value): Deleted.
1324         Reworked class names to be on the element container instead of the icon.
1325
1326         * UserInterface/Views/VisualStylePropertyEditor.js:
1327         (WebInspector.VisualStylePropertyEditor.prototype.update):
1328         (WebInspector.VisualStylePropertyEditor.prototype.updateEditorValues):
1329         (WebInspector.VisualStylePropertyEditor.prototype._valueDidChange):
1330         (WebInspector.VisualStylePropertyEditor.prototype._checkDependencies):
1331
1332 2016-08-15  Saam Barati  <sbarati@apple.com>
1333
1334         Web Inspector: Introduce a method to enable code coverage profiler without enabling type profiler
1335         https://bugs.webkit.org/show_bug.cgi?id=160750
1336         <rdar://problem/27793469>
1337
1338         Reviewed by Joseph Pecoraro.
1339
1340         * UserInterface/Base/Main.js:
1341         (WebInspector.loaded):
1342         * UserInterface/Views/SourceCodeTextEditor.js:
1343         (WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
1344
1345 2016-08-12  Timothy Hatcher  <timothy@apple.com>
1346
1347         Web Inspector: Add application/vnd.api+json as a valid JSON MIME-type
1348         https://bugs.webkit.org/show_bug.cgi?id=160834
1349         rdar://problem/27608536
1350
1351         Reviewed by Joseph Pecoraro.
1352
1353         * UserInterface/Views/CodeMirrorAdditions.js: Add Add application/vnd.api+json to extraJSONTypes.
1354
1355 2016-08-12  Nikita Vasilyev  <nvasilyev@apple.com>
1356
1357         Web Inspector: Command-Shift-O causes infinite loop if web page has frames
1358         https://bugs.webkit.org/show_bug.cgi?id=160810
1359
1360         Reviewed by Joseph Pecoraro.
1361
1362         * UserInterface/Views/OpenResourceDialog.js:
1363         (WebInspector.OpenResourceDialog.prototype._addResourcesForFrame):
1364         "frame" doesn't change inside the loop.
1365
1366 2016-08-12  Joseph Pecoraro  <pecoraro@apple.com>
1367
1368         Web Inspector: Support for :lineNumber syntax in Open Resource Dialog
1369         https://bugs.webkit.org/show_bug.cgi?id=159732
1370         <rdar://problem/27684491>
1371
1372         Reviewed by Matt Baker.
1373
1374         Allow the Open Resource Dialog to support line/column syntax.
1375         Other tools allow "<name>:<line>:<column>" syntax, where the
1376         location data at the end is optional. If the <name> portion
1377         is missing, the location can be used for the active content
1378         view, assuming it has text data and has lines.
1379
1380         * UserInterface/Base/Main.js:
1381         (WebInspector.focusedOrVisibleContentView):
1382         Expose a function to access the current focused / visible content view.
1383
1384         (WebInspector.dialogWasDismissed):
1385         Include passing on cookie data when showing a represented object.
1386
1387         * UserInterface/Views/Dialog.js:
1388         (WebInspector.Dialog):
1389         (WebInspector.Dialog.prototype.get visible):
1390         (WebInspector.Dialog.prototype.get delegate):
1391         (WebInspector.Dialog.prototype.get representedObject):
1392         (WebInspector.Dialog.prototype.get cookie):
1393         (WebInspector.Dialog.prototype.dismiss):
1394         * UserInterface/Models/ResourceQueryResult.js:
1395         (WebInspector.ResourceQueryResult):
1396         (WebInspector.ResourceQueryResult.prototype.get cookie):
1397         Include cookie data along with the represented object in matches
1398         and dialog results.
1399
1400         * UserInterface/Controllers/ResourceQueryController.js:
1401         (WebInspector.ResourceQueryController.prototype.executeQuery):
1402         Cut off location data from a query, and stash it on the query result.
1403         A query can be "<name>:<line>:<column>", and the line/column data
1404         becomes cookie data for the resource.
1405
1406         * UserInterface/Views/OpenResourceDialog.js:
1407         (WebInspector.OpenResourceDialog.prototype._populateResourceTreeOutline):
1408         If the query is just ":<line>:<column>" have it jump to a location
1409         in the current content view if applicable.
1410
1411         (WebInspector.OpenResourceDialog.prototype._handleKeydownEvent):
1412         (WebInspector.OpenResourceDialog.prototype._treeSelectionDidChange):
1413         When dismissing, include cookie data.
1414
1415 2016-08-11  Nikita Vasilyev  <nvasilyev@apple.com>
1416
1417         REGRESSION (r204264): Web Inspector: Uncaught Exception in Network tab when reloading a web page
1418         https://bugs.webkit.org/show_bug.cgi?id=160781
1419         <rdar://problem/27810452>
1420
1421         Reviewed by Matt Baker.
1422
1423         WebInspector.TimelineDataGrid.prototype.closed was removed in r204264.
1424         Define a stub method on DataGrid so it's available to all its subclasses.
1425
1426         * UserInterface/Views/DataGrid.js:
1427         this._dataGrid.closed()
1428
1429 2016-08-10  Joseph Pecoraro  <pecoraro@apple.com>
1430
1431         Web Inspector: Should be able to Edit Node Attributes and Styles for non-UserAgent Shadow DOM nodes
1432         https://bugs.webkit.org/show_bug.cgi?id=160762
1433         <rdar://problem/27798271>
1434
1435         Reviewed by Ryosuke Niwa.
1436
1437         * UserInterface/Models/DOMNode.js:
1438         (WebInspector.DOMNode.prototype.isInUserAgentShadowTree):
1439         (WebInspector.DOMNode.prototype.isShadowRoot):
1440         (WebInspector.DOMNode.prototype.isUserAgentShadowRoot):
1441         (WebInspector.DOMNode.prototype.ancestorShadowRoot):
1442         (WebInspector.DOMNode.prototype.ancestorShadowHost):
1443         Add methods for determining the shadow root, host, and easily
1444         checking the type of shadow tree a node is in.
1445
1446         * UserInterface/Models/CSSStyleDeclaration.js:
1447         (WebInspector.CSSStyleDeclaration.prototype.get editable):
1448         * UserInterface/Views/DOMTreeElement.js:
1449         (WebInspector.DOMTreeElement.prototype.get editable):
1450         (WebInspector.DOMTreeElement.prototype._startEditingTarget):
1451         (WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
1452         * UserInterface/Views/RulesStyleDetailsPanel.js:
1453         (WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):
1454         * UserInterface/Views/VisualStyleSelectorSection.js:
1455         (WebInspector.VisualStyleSelectorSection.prototype._addNewRule):
1456         Allow editing shadow DOM nodes as long as they are not in a UserAgent shadow tree.
1457
1458         * UserInterface/Views/DOMTreeOutline.js:
1459         (WebInspector.DOMTreeOutline.prototype._populateContextMenu):
1460         Disallow "Log Element" on UserAgent shadow tree nodes.
1461
1462 2016-08-10  Nikita Vasilyev  <nvasilyev@apple.com>
1463
1464         Web Inspector: Can't click on the lower half of "S" icon in JavaScript Allocations timeline
1465         https://bugs.webkit.org/show_bug.cgi?id=160743
1466         <rdar://problem/27790098>
1467
1468         Reviewed by Timothy Hatcher.
1469
1470         "S" icons are covered by .scroll-container, which has `z-index: calc(var(--z-index-resizer) + 1)`.
1471         Set larger z-index on the "S" icons.
1472
1473         * UserInterface/Views/HeapAllocationsTimelineOverviewGraph.css:
1474         (.timeline-overview-graph.heap-allocations > img.snapshot):
1475
1476 2016-08-08  Joseph Pecoraro  <pecoraro@apple.com>
1477
1478         Web Inspector: Popover for Color Picker should update position when window resizes
1479         https://bugs.webkit.org/show_bug.cgi?id=160321
1480
1481         Reviewed by Brian Burg.
1482
1483         * UserInterface/Views/Popover.js:
1484         (WebInspector.Popover):
1485         (WebInspector.Popover.prototype.set windowResizeHandler):
1486         (WebInspector.Popover.prototype.dismiss):
1487         (WebInspector.Popover.prototype.handleEvent):
1488         (WebInspector.Popover.prototype._addListenersIfNeeded):
1489         The popover already has a set of window listeners, add "resize" to
1490         the list. If there is a resize, invoke a resize handler. The resize
1491         handler will only be called while the popover is visible.
1492
1493         * UserInterface/Views/HeapSnapshotDataGridTree.js:
1494         (WebInspector.HeapSnapshotDataGridTree):
1495         (WebInspector.HeapSnapshotDataGridTree.prototype.get visible):
1496         (WebInspector.HeapSnapshotDataGridTree.prototype.get popoverNode):
1497         (WebInspector.HeapSnapshotDataGridTree.prototype.set popoverNode):
1498         (WebInspector.HeapSnapshotDataGridTree.prototype.get popoverTargetElement):
1499         (WebInspector.HeapSnapshotDataGridTree.prototype.set popoverTargetElement):
1500         (WebInspector.HeapSnapshotDataGridTree.prototype.get popover):
1501         (WebInspector.HeapSnapshotDataGridTree.prototype.willDismissPopover):
1502         * UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
1503         Update heap snapshot popovers to reposition on window resize.
1504         Set a target to reposition around, since the popover is shared.
1505
1506         * UserInterface/Views/ProbeSetDetailsSection.js:
1507         (WebInspector.ProbeSetDetailsSection.prototype._addProbeButtonClicked):
1508         Update probe expression popover to respect window resizes.
1509
1510         * UserInterface/Views/VisualStylePropertyEditor.js:
1511         (WebInspector.VisualStylePropertyEditor.prototype._showPropertyInfoPopover):
1512         Though not yet visible, update this to respect window resizes.
1513
1514         * UserInterface/Views/InlineSwatch.js:
1515         (WebInspector.InlineSwatch.prototype._swatchElementClicked):
1516         Add a window resize handler to reposition over the swatch element.
1517
1518         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
1519         (WebInspector.LayerTreeDetailsSidebarPanel.prototype._updatePopoverForSelectedNode):
1520         (WebInspector.LayerTreeDetailsSidebarPanel): Deleted.
1521         (WebInspector.LayerTreeDetailsSidebarPanel.prototype._windowResized): Deleted.
1522         * UserInterface/Views/TimelineDataGrid.js:
1523         (WebInspector.TimelineDataGrid.prototype._showPopoverForSelectedNodeSoon):
1524         (WebInspector.TimelineDataGrid): Deleted.
1525         (WebInspector.TimelineDataGrid.prototype.closed): Deleted.
1526         (WebInspector.TimelineDataGrid.prototype.handleEvent): Deleted.
1527         (WebInspector.TimelineDataGrid.prototype._windowResized): Deleted.
1528         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
1529         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked):
1530         (WebInspector.ScopeChainDetailsSidebarPanel.prototype.willDismissPopover): Deleted.
1531         Replace custom popover repositioning with standard Popover handling.
1532
1533 2016-08-07  Matt Baker  <mattbaker@apple.com>
1534
1535         REGRESSION (r201245): switching between Computed and Visual Styles panels causes internal error
1536         https://bugs.webkit.org/show_bug.cgi?id=160604
1537         <rdar://problem/27723416>
1538
1539         Reviewed by Timothy Hatcher.
1540
1541         * UserInterface/Views/StyleDetailsPanel.js:
1542         (WebInspector.StyleDetailsPanel.prototype.shown):
1543         Only perform a layout if needed. Subclasses access node style
1544         data during layout, which may not exist yet.
1545
1546 2016-08-06  Matt Baker  <mattbaker@apple.com>
1547
1548         REGRESSION (r203253): Node details sidebar flickers while resizing
1549         https://bugs.webkit.org/show_bug.cgi?id=160631
1550         <rdar://problem/27733024>
1551
1552         Reviewed by Timothy Hatcher.
1553
1554         Sidebar panel layouts can be expensive, and should be performed only
1555         when necessary (i.e., when the panel is shown for the first time, or
1556         model data changed while the panel was hidden).
1557
1558         * UserInterface/Views/Sidebar.js:
1559         (WebInspector.Sidebar.prototype._recalculateWidth):
1560
1561         * UserInterface/Views/SidebarPanel.js:
1562         (WebInspector.SidebarPanel.prototype.shown):
1563
1564         * UserInterface/Views/View.js:
1565         (WebInspector.View.prototype.updateLayoutIfNeeded):
1566         Update the layout if an initial layout was never performed.
1567
1568 2016-08-04  Matt Baker  <mattbaker@apple.com>
1569
1570         Web Inspector: UI polish for Edit Breakpoint dialog
1571         https://bugs.webkit.org/show_bug.cgi?id=160566
1572         <rdar://problem/27706378>
1573
1574         Reviewed by Timothy Hatcher.
1575
1576         * UserInterface/Images/BreakpointActionAdd.svg: Removed.
1577         * UserInterface/Images/BreakpointActionRemove.svg: Removed.
1578         Use Plus13.svg and Minus.svg instead.
1579
1580         * UserInterface/Views/BreakpointActionView.css:
1581         (.breakpoint-action-button-container):
1582         (.breakpoint-action-append-button,):
1583         (.breakpoint-action-append-button):
1584         (.breakpoint-action-remove-button):
1585         Button styles should match Xcode.
1586         (.breakpoint-action-append-button:active,): Deleted.
1587         Brightness on activation no longer needed.
1588
1589         * UserInterface/Views/BreakpointActionView.js:
1590         (WebInspector.BreakpointActionView):
1591         Add a button container so buttons can float together.
1592
1593         * UserInterface/Views/BreakpointPopoverController.css:
1594         (.wide .edit-breakpoint-popover-condition > .CodeMirror):
1595         Increase condition field width by the same amount as the popover.
1596
1597 2016-08-04  Matt Baker  <mattbaker@apple.com>
1598
1599         Web Inspector: Popover's arrow is misplaced
1600         https://bugs.webkit.org/show_bug.cgi?id=151236
1601         <rdar://problem/23527296>
1602
1603         Reviewed by Brian Burg.
1604
1605         * UserInterface/Views/Popover.js:
1606         (WebInspector.Popover.prototype._setAnchorPoint):
1607         Drive-by style fix.
1608         (WebInspector.Popover.prototype._drawFrame):
1609         Position the arrow so that the arrow head doesn't overlap the
1610         rounded corners of its edge.
1611
1612 2016-08-04  Matt Baker  <mattbaker@apple.com>
1613
1614         Web Inspector: Add placeholder graphs to TimelineOverview while editing
1615         https://bugs.webkit.org/show_bug.cgi?id=160485
1616         <rdar://problem/27670755>
1617
1618         Reviewed by Brian Burg.
1619
1620         Insert placeholder elements in TimelineOverview's graph container
1621         when editing instruments. This allows alternating overview graph styles
1622         to be shown for disabled instruments, and ensures that every tree element
1623         has a corresponding element in the overview during dragging/reordering
1624         of instruments (see https://webkit.org/b/157957).
1625
1626         * UserInterface/Views/TimelineOverview.js:
1627         (WebInspector.TimelineOverview.prototype._startEditingInstruments):
1628         (WebInspector.TimelineOverview.prototype._stopEditingInstruments):
1629
1630 2016-08-04  Matt Baker  <mattbaker@apple.com>
1631
1632         Web Inspector: UI polish for Open Quickly and Goto Line dialogs
1633         https://bugs.webkit.org/show_bug.cgi?id=159849
1634         <rdar://problem/27383068>
1635
1636         Reviewed by Brian Burg.
1637
1638         * UserInterface/Images/Search.svg: Added.
1639         Magnifying glass icon.
1640
1641         * UserInterface/Views/GoToLineDialog.css:
1642         (.go-to-line-dialog):
1643         (.go-to-line-dialog > div):
1644         (.go-to-line-dialog > div::before):
1645         * UserInterface/Views/OpenResourceDialog.css:
1646         (.open-resource-dialog > .field):
1647         (.open-resource-dialog > .field::before):
1648         (.open-resource-dialog.has-results > .tree-outline):
1649         (.open-resource-dialog > .tree-outline .item):
1650         Add search icon to left of the input field in both dialogs,
1651         and adjust styles to better match Xcode 8.
1652
1653         * UserInterface/Views/OpenResourceDialog.js:
1654         (WebInspector.OpenResourceDialog):
1655         Remove "input" event listener, as styles are now toggled in _updateFilter.
1656         (WebInspector.OpenResourceDialog.prototype._updateFilter):
1657         Toggle "has-results" and "non-empty" class names.
1658         (WebInspector.OpenResourceDialog.prototype._handleInputEvent): Deleted.
1659         (WebInspector.OpenResourceDialog.prototype._clear): Deleted.
1660         Moved class toggle to _updateFilter.
1661
1662 2016-08-03  Chris Dumez  <cdumez@apple.com>
1663
1664         Drop DocumentType.internalSubset attribute
1665         https://bugs.webkit.org/show_bug.cgi?id=160530
1666
1667         Reviewed by Alex Christensen.
1668
1669         Drop DocumentType.internalSubset attribute.
1670
1671         * UserInterface/Models/DOMNode.js:
1672         (WebInspector.DOMNode): Deleted.
1673         * UserInterface/Models/DOMSearchMatchObject.js:
1674         (WebInspector.DOMSearchMatchObject.titleForDOMNode): Deleted.
1675         * UserInterface/Views/DOMTreeElement.js:
1676         (WebInspector.DOMTreeElement.prototype._nodeTitleInfo): Deleted.
1677
1678 2016-08-03  Matt Baker  <mattbaker@apple.com>
1679
1680         Web Inspector: Cmd-L shortcut for Jump to Line conflicts with selecting URL of inspected page
1681         https://bugs.webkit.org/show_bug.cgi?id=158028
1682         <rdar://problem/26516663>
1683
1684         Reviewed by Timothy Hatcher.
1685
1686         Remove Command-L shortcut for opening the Line Number dialog, since
1687         we already support Control-G.
1688
1689         * UserInterface/Views/SourceCodeTextEditor.js:
1690         (WebInspector.SourceCodeTextEditor): Deleted.
1691
1692 2016-08-01  Nikita Vasilyev  <nvasilyev@apple.com>
1693
1694         Web Inspector: Don't set `width:calc(100% - 0px); left:0px` on console messages
1695         https://bugs.webkit.org/show_bug.cgi?id=160428
1696         <rdar://problem/27646033>
1697
1698         Reviewed by Timothy Hatcher.
1699
1700         Console messages inside console.group() are indented. Console messages outside of
1701         console.group() aren't and there is no reason to set inline styles that do nothing
1702         on each one of them.
1703
1704         * UserInterface/Views/LogContentView.js:
1705         (WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
1706
1707 2016-08-01  Matt Baker  <mattbaker@apple.com>
1708
1709         Web Inspector: Grid column resizer elements positioned incorrectly
1710         https://bugs.webkit.org/show_bug.cgi?id=160311
1711         <rdar://problem/27595586>
1712
1713         Reviewed by Brian Burg.
1714
1715         Perform a resize layout on a newly shown tab content view if the tab
1716         browser was resized before showing the tab.
1717
1718         * UserInterface/Views/TabBrowser.js:
1719         (WebInspector.TabBrowser):
1720         (WebInspector.TabBrowser.prototype.layout):
1721         Mark all recent tab content views (except for the current view)
1722         as needing a resize layout.
1723
1724         (WebInspector.TabBrowser.prototype._tabBarItemSelected):
1725         If the tab browser was resized while the view was hidden, update the
1726         view's layout for the new content view container size.
1727
1728 2016-08-01  Matt Baker  <mattbaker@apple.com>
1729
1730         Web Inspector: Waterfall graph in Network tab shows too much whitespace/dead time
1731         https://bugs.webkit.org/show_bug.cgi?id=160373
1732
1733         Reviewed by Timothy Hatcher.
1734
1735         Track the start and end time separate from the ruler to remove
1736         leading/trailing whitespace in the graph. Also prevent network
1737         record bars from being clipped.
1738
1739         * UserInterface/Views/NetworkGridContentView.js:
1740         (WebInspector.NetworkGridContentView):
1741         (WebInspector.NetworkGridContentView.prototype.get zeroTime):
1742         Set equal to the ruler start time.
1743         (WebInspector.NetworkGridContentView.prototype.reset):
1744         Reset start and end time.
1745         (WebInspector.NetworkGridContentView.prototype.layout):
1746         Set the initial values for ruler start/zero time if needed.
1747         (WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
1748         Set the start time if needed.
1749         Reduce debounce from 250ms to 150ms. This prevents the current time from
1750         exceeding the end time by as wide a margin, while keeping the current
1751         time "timer" from being restarted too frequently.
1752
1753         (WebInspector.NetworkGridContentView.prototype._stopUpdatingCurrentTime):
1754         Update the ruler end time and schedule a layout.
1755         Add padding equal to the time needed to draw a network bar at minimum width
1756         to prevent bars from being clipped.
1757
1758 2016-07-29  Matt Baker  <mattbaker@apple.com>
1759
1760         Web Inspector: Inactive/active network bar segments overlap when latency is zero
1761         https://bugs.webkit.org/show_bug.cgi?id=160147
1762         <rdar://problem/27516007>
1763
1764         Reviewed by Joseph Pecoraro.
1765
1766         TimelineRecordBar should hide the inactive segment when its duration
1767         is less than the minimum displayable size. The active segment can
1768         assume the whole width of the bar.
1769
1770         * UserInterface/Views/TimelineOverviewGraph.js:
1771         (WebInspector.TimelineOverviewGraph.prototype.get secondsPerPixel):
1772         Make secondsPerPixel available during TimelineRecordBars.refresh.
1773
1774         * UserInterface/Views/TimelineRecordBar.js:
1775         (WebInspector.TimelineRecordBar.prototype.refresh):
1776         Check inactive duration against the minimum display size,
1777         and add/remove DOM nodes and bar styles as needed.
1778
1779 2016-07-29  Nikita Vasilyev  <nvasilyev@apple.com>
1780
1781         REGRESSION (r195456): Web Inspector: Changing tabs in Styles sidebar shouldn't change sidebar's width
1782         https://bugs.webkit.org/show_bug.cgi?id=159646
1783         <rdar://problem/27286338>
1784
1785         Reviewed by Brian Burg.
1786
1787         Remember sidebar width on per tab basis. For example, Node, Styles, and Layers sidebar panels in
1788         Elements tab should all have the same width, but Resource sidebar panel in Debugger tab should NOT
1789         share its width Element tab's sidebar.
1790
1791         TabContentView stores the width but TabBrowser manages saving and restoring it.
1792         The same way collapsed sidebar state is handled.
1793
1794         * UserInterface/Views/Sidebar.js:
1795         (WebInspector.Sidebar.prototype.set collapsed):
1796         Don't change sidebar's width when sidebar panels change.
1797
1798         (WebInspector.Sidebar.prototype._recalculateWidth):
1799         (WebInspector.Sidebar.prototype.set selectedSidebarPanel): Deleted.
1800         Pass newWidth as an argument so it can be saved in TabBrowser.
1801
1802         * UserInterface/Views/SidebarPanel.js:
1803         (WebInspector.SidebarPanel): Deleted.
1804         (WebInspector.SidebarPanel.prototype.get savedWidth): Deleted.
1805         (WebInspector.SidebarPanel.prototype.sizeDidChange): Deleted.
1806         Remove the per sidebar panel width setting that was added in r195456.
1807
1808         * UserInterface/Views/TabBrowser.js:
1809         (WebInspector.TabBrowser):
1810         (WebInspector.TabBrowser.prototype._detailsSidebarWidthDidChange):
1811         (WebInspector.TabBrowser.prototype._showDetailsSidebarPanelsForTabContentView):
1812         * UserInterface/Views/TabContentView.js:
1813         (WebInspector.TabContentView):
1814         (WebInspector.TabContentView.prototype.get detailsSidebarWidthSetting):
1815         Store details sidebar width on TabContentView.
1816
1817 2016-07-29  Matt Baker  <mattbaker@apple.com>
1818
1819         Web Inspector: Assertion in NetworkGridContentView when updating data grid for the first time
1820         https://bugs.webkit.org/show_bug.cgi?id=160330
1821         <rdar://problem/27600905>
1822
1823         Reviewed by Brian Burg.
1824
1825         When the first grid node is added, a view layout and current time update
1826         are scheduled. A view layout occurring before the current time is updated
1827         should be skipped, since the ruler end time hasn't been set.
1828
1829         * UserInterface/Views/NetworkGridContentView.js:
1830         (WebInspector.NetworkGridContentView.prototype.layout):
1831         Skip layout until current time is updated.
1832         (WebInspector.NetworkGridContentView.prototype._update):
1833         Remove unused variables `startTime` and `endTime`. Don't force a layout
1834         if the elapsed time is zero.
1835
1836 2016-07-28  Chris Dumez  <cdumez@apple.com>
1837
1838         Parameters to Event.initEvent() should be mandatory
1839         https://bugs.webkit.org/show_bug.cgi?id=160320
1840
1841         Reviewed by Darin Adler.
1842
1843         Update WebInspector accordingly.
1844
1845         * UserInterface/Models/NativeFunctionParameters.js:
1846
1847 2016-07-28  Chris Dumez  <cdumez@apple.com>
1848
1849         First parameter to canvas.getContext() / probablySupportsContext() should be mandatory
1850         https://bugs.webkit.org/show_bug.cgi?id=160312
1851
1852         Reviewed by Darin Adler.
1853
1854         Update WebInspector accordingly.
1855
1856         * UserInterface/Models/NativeFunctionParameters.js:
1857
1858 2016-07-28  Matt Baker  <mattbaker@apple.com>
1859
1860         Web Inspector: Hiding a column which contains a TimelineRuler as the headerview, doesn't hide the headerView
1861         https://bugs.webkit.org/show_bug.cgi?id=160093
1862         <rdar://problem/27499300>
1863
1864         Reviewed by Joseph Pecoraro.
1865
1866         * UserInterface/Views/DataGrid.js:
1867         (WebInspector.DataGrid.prototype._positionHeaderViews):
1868         Remove early return so that a header view in a hidden column will have
1869         its width resized to zero, matching the column.
1870
1871 2016-07-28  Johan K. Jensen  <johan_jensen@apple.com>
1872
1873         Web Inspector: Waterfall view should be visible in Network tab and Network Timeline
1874         https://bugs.webkit.org/show_bug.cgi?id=160061
1875
1876         Reviewed by Joseph Pecoraro.
1877
1878         Adds a Timeline-column (waterfall) to the Network tab and Network Timeline.
1879
1880         * Localizations/en.lproj/localizedStrings.js:
1881         Add "Timeline" localized string.
1882
1883         * UserInterface/Views/NetworkGridContentView.js:
1884         (WebInspector.NetworkGridContentView):
1885         Add the Timeline-column with a TimelineRuler as the headerview,
1886         and properties for updating current time.
1887
1888         (WebInspector.NetworkGridContentView.prototype.get secondsPerPixel):
1889         (WebInspector.NetworkGridContentView.prototype.get startTime):
1890         (WebInspector.NetworkGridContentView.prototype.get currentTime):
1891         (WebInspector.NetworkGridContentView.prototype.get endTime):
1892         Acting as a graphDataSource used by TimelineDataGridNode.
1893
1894         (WebInspector.NetworkGridContentView.prototype.shown):
1895         (WebInspector.NetworkGridContentView.prototype.reset):
1896         (WebInspector.NetworkGridContentView.prototype.layout):
1897         Refresh graphs and update the TimelineRuler on layout changes.
1898
1899         (WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
1900         Add listeners for when resources are finished to stop the timer.
1901
1902         (WebInspector.NetworkGridContentView.prototype._update):
1903         (WebInspector.NetworkGridContentView.prototype._startUpdatingCurrentTime):
1904         (WebInspector.NetworkGridContentView.prototype._stopUpdatingCurrentTime):
1905         Adding a timer which updates the TimelineRuler and the layout
1906         if any non-finished requests are running.
1907
1908         * UserInterface/Views/NetworkTimelineView.js:
1909         (WebInspector.NetworkTimelineView):
1910         Add the Timeline-column with a TimelineRuler as the headerview.
1911
1912         (WebInspector.NetworkTimelineView.prototype.get secondsPerPixel):
1913         (WebInspector.NetworkTimelineView.prototype.layout):
1914         Refresh graphs on layout changes.
1915
1916         * UserInterface/Views/TimelineDataGrid.css:
1917         (.tree-outline.timeline-data-grid .item:hover .subtitle):
1918         (.data-grid.timeline th):
1919         (.data-grid.timeline th.graph-column > .timeline-ruler):
1920         (.data-grid.timeline td.graph-column):
1921         (.data-grid.timeline td.graph-column > .cell-content):
1922         (.data-grid.timeline td.graph-column .timeline-record-bar):
1923
1924 2016-07-28  Chris Dumez  <cdumez@apple.com>
1925
1926         Parameter to table.deleteRow() / body.deleteRow() should be mandatory
1927         https://bugs.webkit.org/show_bug.cgi?id=160307
1928
1929         Reviewed by Ryosuke Niwa.
1930
1931         Update WebInspector accordingly.
1932
1933         * UserInterface/Models/NativeFunctionParameters.js:
1934
1935 2016-07-28  Chris Dumez  <cdumez@apple.com>
1936
1937         2 first parameters to input.setSelectionRange() should be mandatory
1938         https://bugs.webkit.org/show_bug.cgi?id=160310
1939
1940         Reviewed by Alex Christensen.
1941
1942         Update WebInspector accordingly.
1943
1944         * UserInterface/Models/NativeFunctionParameters.js:
1945
1946 2016-07-28  Chris Dumez  <cdumez@apple.com>
1947
1948         Parameter to tr.deleteCell() should be mandatory
1949         https://bugs.webkit.org/show_bug.cgi?id=160308
1950
1951         Reviewed by Ryosuke Niwa.
1952
1953         Report tr.deleteCell() parameter as mandatory.
1954
1955         * UserInterface/Models/NativeFunctionParameters.js:
1956
1957 2016-07-27  Nikita Vasilyev  <nvasilyev@apple.com>
1958
1959         Web Inspector: Visual Styles Sidebar should have only one column when it's narrow
1960         https://bugs.webkit.org/show_bug.cgi?id=159905
1961         <rdar://problem/27413248>
1962
1963         Reviewed by Joseph Pecoraro.
1964
1965         Many CSS values often get clipped in the two colunm layout. Change the layout to one colunm
1966         when visual style rows get too narrow.
1967
1968         * UserInterface/Views/VisualStyleDetailsPanel.css:
1969         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row):
1970         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .metric-section-row):
1971         Wrap all rows except for position/padding/margin controls.
1972
1973         (.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row > .visual-style-property-container:not(.layout-reversed):last-child): Deleted.
1974         Margin between the first and the second column doesn't make sense one column layout.
1975         Set the margin in .visual-style-property-container instead.
1976
1977         * UserInterface/Views/VisualStyleDetailsPanel.js:
1978         (WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):
1979         * UserInterface/Views/VisualStylePropertyEditor.css:
1980         (.visual-style-property-container):
1981
1982 2016-07-27  Joseph Pecoraro  <pecoraro@apple.com>
1983
1984         [Mac] Web Inspector: CodeMirror-based editor bindings for Home and End don't match system behavior
1985         https://bugs.webkit.org/show_bug.cgi?id=160267
1986         <rdar://problem/27575553>
1987
1988         Reviewed by Brian Burg.
1989
1990         * UserInterface/Views/CodeMirrorEditor.js:
1991         (WebInspector.CodeMirrorEditor.create):
1992         (WebInspector.CodeMirrorEditor):
1993         Add some key map overrides for Home and End to better match system Mac
1994         behavior. This scrolls to the start or end of a document and does not
1995         change the cursor position.
1996
1997 2016-07-27  Brian Burg  <bburg@apple.com>
1998
1999         Regression(r203535): Uncaught Exception: TypeError: Not enough arguments at LayerTreeDataGridNode.js:47
2000         https://bugs.webkit.org/show_bug.cgi?id=160187
2001         <rdar://problem/27540435>
2002
2003         Reviewed by Eric Carlson.
2004
2005         After r203535, document.createTextNode() requires an argument.
2006
2007         * UserInterface/Views/LayerTreeDataGridNode.js:
2008         (WebInspector.LayerTreeDataGridNode.prototype.createCellContent):
2009         Since this use-site is for creating a cell in an unknown column,
2010         initialize it to '–'. Previously it would have been the string
2011         "undefined" or empty.
2012
2013 2016-07-24  Matt Baker  <mattbaker@apple.com>
2014
2015         Web Inspector: Filtering is broken in the Overview timeline view
2016         https://bugs.webkit.org/show_bug.cgi?id=160152
2017         <rdar://problem/27517481>
2018
2019         Reviewed by Joseph Pecoraro.
2020
2021         * UserInterface/Views/SourceCodeTimelineTimelineDataGridNode.js:
2022         (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.filterableDataForColumn):
2023         Non-resource nodes should be filtered based on their display name.
2024
2025 2016-07-23  Nikita Vasilyev  <nvasilyev@apple.com>
2026
2027         REGRESSION (r202876): Web Inspector: Switching away from Console tab with a lot of messages is slow
2028         https://bugs.webkit.org/show_bug.cgi?id=160112
2029
2030         Reviewed by Joseph Pecoraro.
2031
2032         Showing NavigationSidebar before removing previous TabContentView can be very slow when
2033         TabContentView is ConsoleTabContentView with a lot of messages. The order of operations
2034         (show sidebar, change content view, show sidebar) caused more forced layouts. This patch
2035         reduces the number of forced layouts by changes the order to: show content view, show sidebar,
2036         show sidebar.
2037
2038         * UserInterface/Views/TabBrowser.js:
2039         (WebInspector.TabBrowser.prototype._tabBarItemSelected):
2040
2041 2016-07-20  Joseph Pecoraro  <pecoraro@apple.com>
2042
2043         Web Inspector: Pausing when Debugger tab is closed opens tab in wrong state
2044         https://bugs.webkit.org/show_bug.cgi?id=159946
2045         <rdar://problem/27429886>
2046
2047         Reviewed by Timothy Hatcher.
2048
2049         * UserInterface/Views/DebuggerSidebarPanel.js:
2050         (WebInspector.DebuggerSidebarPanel):
2051         At the end of construction, update the UI to match the current state
2052         of the world. Such as updating the UI if we are paused, or if the
2053         Timeline is capturing and we are temporarily disabling breakpoints.
2054
2055 2016-07-15  Timothy Hatcher  <timothy@apple.com>
2056
2057         Web Inspector: Make Open Quickly and Goto Line dialogs match Xcode 8
2058         https://bugs.webkit.org/show_bug.cgi?id=159823
2059         rdar://problem/27376501
2060
2061         Reviewed by Brian Burg.
2062
2063         * UserInterface/Views/GoToLineDialog.css:
2064         (.go-to-line-dialog):
2065         (.go-to-line-dialog > div > input):
2066         (.go-to-line-dialog > div > input::placeholder):
2067         (.go-to-line-dialog > div > img):
2068         (.go-to-line-dialog > div): Deleted.
2069         * UserInterface/Views/OpenResourceDialog.css:
2070         (.open-resource-dialog):
2071         (.open-resource-dialog > .field):
2072         (.open-resource-dialog > .field > input):
2073         (.open-resource-dialog > .field > input::placeholder):
2074         (.open-resource-dialog > .field > img):
2075         (.open-resource-dialog > .tree-outline .item): Deleted.
2076         (.open-resource-dialog > .tree-outline .item:first-child): Deleted.
2077
2078 2016-07-14  Joseph Pecoraro  <pecoraro@apple.com>
2079
2080         Web Inspector: Rename CCTNode to CallingContextTreeNode
2081         https://bugs.webkit.org/show_bug.cgi?id=159782
2082
2083         Reviewed by Timothy Hatcher.
2084
2085         * UserInterface/Models/CallingContextTree.js:
2086         * UserInterface/Models/CallingContextTreeNode.js:
2087         Extra to its own file and rename.
2088
2089         * UserInterface/Main.html:
2090         * UserInterface/Test.html:
2091         * UserInterface/TestStub.html:
2092         Include the new file.
2093
2094         * UserInterface/Views/ProfileDataGridNode.js:
2095         (WebInspector.ProfileDataGridNode):
2096         * UserInterface/Views/ProfileDataGridTree.js:
2097         (WebInspector.ProfileDataGridTree.prototype._updateCurrentFocusDetails):
2098         Rename shorthand "cctnode".
2099
2100 2016-07-14  Matt Baker  <mattbaker@apple.com>
2101
2102         Web Inspector: SidebarPanel classes should use View.layout instead of "refresh"
2103         https://bugs.webkit.org/show_bug.cgi?id=159745
2104         <rdar://problem/27335252>
2105
2106         Reviewed by Timothy Hatcher.
2107
2108         * UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
2109         (WebInspector.ApplicationCacheDetailsSidebarPanel.prototype.set applicationCacheFrame):
2110         Use needsLayout.
2111
2112         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
2113         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.layout):
2114         Move refresh logic to layout.
2115         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.initialLayout):
2116         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._styleSheetAddedOrRemoved):
2117         Defer layout to coalesce updates.
2118         (WebInspector.CSSStyleDetailsSidebarPanel):
2119         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh): Deleted.
2120
2121         * UserInterface/Views/DOMDetailsSidebarPanel.js:
2122         (WebInspector.DOMDetailsSidebarPanel.prototype.set domNode):
2123         Use needsLayout.
2124
2125         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2126         Move refresh logic to layout.
2127
2128         * UserInterface/Views/DetailsSidebarPanel.js:
2129         (WebInspector.DetailsSidebarPanel.prototype.shown): Deleted.
2130         Base class already forces a layout when shown.
2131         (WebInspector.DetailsSidebarPanel.prototype.needsRefresh): Deleted.
2132         No longer needed.
2133         (WebInspector.DetailsSidebarPanel.prototype.refresh): Deleted.
2134         Renamed layout.
2135         (WebInspector.DetailsSidebarPanel): Deleted.
2136
2137         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
2138         (WebInspector.LayerTreeDetailsSidebarPanel.prototype.supportsDOMNode):
2139         (WebInspector.LayerTreeDetailsSidebarPanel.prototype._layerTreeDidChange):
2140         Use needsLayout.
2141         (WebInspector.LayerTreeDetailsSidebarPanel.prototype.shown):
2142         Base class already forces a layout when shown.
2143
2144         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
2145         (WebInspector.ResourceDetailsSidebarPanel.prototype.set resource):
2146         Use needsLayout.
2147
2148         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
2149         (WebInspector.ScopeChainDetailsSidebarPanel):
2150         (WebInspector.ScopeChainDetailsSidebarPanel.prototype.set callFrame):
2151         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpression):
2152         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._removeWatchExpression):
2153         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._clearAllWatchExpressions):
2154         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._refreshAllWatchExpressionsButtonClicked):
2155         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._didEvaluateExpression):
2156         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._mainResourceDidChange):
2157         Use needsLayout.
2158
2159 2016-07-14  Joseph Pecoraro  <pecoraro@apple.com>
2160
2161         Web Inspector: Maintain selected function when switching between different profile representations
2162         https://bugs.webkit.org/show_bug.cgi?id=159778
2163         <rdar://problem/27355913>
2164
2165         Reviewed by Timothy Hatcher.
2166
2167         * UserInterface/Models/CallingContextTree.js:
2168         (WebInspector.CCTNode):
2169         (WebInspector.CCTNode.prototype.get hash):
2170         (WebInspector.CCTNode.prototype.findOrMakeChild):
2171         (WebInspector.CCTNode.prototype.equals):
2172         Expose the hash so two nodes can be compared cheaply.
2173
2174         * UserInterface/Views/ProfileView.js:
2175         (WebInspector.ProfileView.prototype._repopulateDataGridFromTree):
2176         (WebInspector.ProfileView.prototype._restoreSharedState):
2177         (WebInspector.ProfileView.prototype._dataGridNodeSelected):
2178         Share data between multiple ProfileViews. Currently just remembering
2179         and restoring the selected function.
2180
2181         * UserInterface/Views/ScriptProfileTimelineView.js:
2182         (WebInspector.ScriptProfileTimelineView):
2183         (WebInspector.ScriptProfileTimelineView.prototype._showProfileViewForOrientation):
2184         Include the shared data when constructing new ProfileViews.
2185
2186 2016-07-13  Matt Baker  <mattbaker@apple.com>
2187
2188         Uncaught Exception: TypeError: null is not an object (evaluating 'this._contentViewContainer.currentContentView.showsFilterBar')
2189         https://bugs.webkit.org/show_bug.cgi?id=159696
2190         <rdar://problem/27312356>
2191
2192         Reviewed by Joseph Pecoraro.
2193
2194         * UserInterface/Views/TimelineRecordingContentView.js:
2195         (WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
2196         Early return if content view not visible, since the event is sent during
2197         tab teardown and the current TimelineView may be invalid.
2198
2199 2016-07-12  Joseph Pecoraro  <pecoraro@apple.com>
2200
2201         REGRESSION(r192789): Web Inspector: Log Value context menu appears twice
2202         https://bugs.webkit.org/show_bug.cgi?id=159681
2203         <rdar://problem/27304804>
2204
2205         Reviewed by Brian Burg.
2206
2207         In r192789 contextmenu events may bubble up so that multiple handlers
2208         may append ContextMenuItems. In nested ObjectTrees / ObjectPreviews
2209         this could result in duplicate items. Add a flag on the bubbling event
2210         so that we only include Object Tree context menu items for the deepest
2211         part of the Object Tree, but still allow bubbling up to the root.
2212
2213         * UserInterface/Views/ObjectPreviewView.js:
2214         (WebInspector.ObjectPreviewView.prototype._contextMenuHandler):
2215         (WebInspector.ObjectPreviewView):
2216         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
2217         (WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler):
2218
2219 2016-07-12  Johan K. Jensen  <johan_jensen@apple.com>
2220
2221         Web Inspector: ER: Copy as cURL
2222         https://bugs.webkit.org/show_bug.cgi?id=159380
2223
2224         Reviewed by Joseph Pecoraro.
2225
2226         Inspired by https://chromium.googlesource.com/chromium/src/+/b7c1115dbae65030ad96e773d9a270465a05f5c4/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js
2227
2228         This "Copy as cURL" feature only approximates the original request as only some parts of
2229         that request is known to the frontend.
2230
2231         * UserInterface/Models/Resource.js:
2232         (WebInspector.Resource.prototype.generateCURLCommand.escapeStringPosix.escapeCharacter):
2233         (WebInspector.Resource.prototype.generateCURLCommand.escapeStringPosix):
2234         (WebInspector.Resource.prototype.generateCURLCommand):
2235         (WebInspector.Resource):
2236         * UserInterface/Views/ResourceTimelineDataGridNode.js:
2237         (WebInspector.ResourceTimelineDataGridNode.prototype.appendContextMenuItems):
2238
2239 2016-07-12  Joseph Pecoraro  <pecoraro@apple.com>
2240
2241         Web Inspector: Use separate files for TreeOutline/TreeElement and DataGrid/DataGridNode
2242         https://bugs.webkit.org/show_bug.cgi?id=159659
2243
2244         Reviewed by Timothy Hatcher.
2245
2246         * UserInterface/Main.html:
2247         * UserInterface/Views/DataGrid.js:
2248         * UserInterface/Views/DataGridNode.js: Added.
2249         * UserInterface/Views/TreeElement.js: Added.
2250         * UserInterface/Views/TreeOutline.js:
2251         Extra the component classes to their own file.
2252
2253 2016-07-11  Joseph Pecoraro  <pecoraro@apple.com>
2254
2255         Web Inspector: ProfileView sometimes shows Top Functions data despite Top Functions being disabled
2256         https://bugs.webkit.org/show_bug.cgi?id=159660
2257         <rdar://problem/27291647>
2258
2259         Reviewed by Timothy Hatcher.
2260
2261         * UserInterface/Views/ScriptProfileTimelineView.js:
2262         (WebInspector.ScriptProfileTimelineView.prototype._profileOrientationButtonClicked):
2263         Pass the value of the setting, not the setting itself.
2264
2265 2016-07-11  Nikita Vasilyev  <nvasilyev@apple.com>
2266
2267         Web Inspector: Transition and Animation sections in Visual Styles sidebar should have more spacing to their left
2268         https://bugs.webkit.org/show_bug.cgi?id=159633
2269         <rdar://problem/27281805>
2270
2271         Reviewed by Timothy Hatcher.
2272
2273         * UserInterface/Views/VisualStyleDetailsPanel.css:
2274         (.visual-style-property-container.animation):
2275
2276 2016-07-08  Nikita Vasilyev  <nvasilyev@apple.com>
2277
2278         Web Inspector: Command-Shift-S in the Styles sidebar should always show the save dialog
2279         https://bugs.webkit.org/show_bug.cgi?id=156858
2280         <rdar://problem/25859098>
2281
2282         Reviewed by Timothy Hatcher.
2283
2284         * UserInterface/Views/CSSStyleDeclarationSection.js:
2285         (WebInspector.CSSStyleDeclarationSection):
2286
2287 2016-07-07  Joseph Pecoraro  <pecoraro@apple.com>
2288
2289         Web Inspector, regression: JS/JSON pretty-printing sporadically broken in STP8
2290         https://bugs.webkit.org/show_bug.cgi?id=159511
2291         <rdar://problem/27218435>
2292
2293         Reviewed by Timothy Hatcher.
2294
2295         * UserInterface/Workers/Formatter/FormatterWorker.js:
2296         (FormatterWorker.prototype.formatJavaScript):
2297         Attempt to format invalid JSON that can be evaluated to an object.
2298
2299 2016-07-07  Timothy Hatcher  <timothy@apple.com>
2300
2301         Web Inspector: scrolled Snapshot list is reset to top and drawn blank after switching back from Snapshot Comparison view
2302         https://bugs.webkit.org/show_bug.cgi?id=158218
2303         rdar://problem/26545000
2304
2305         Reviewed by Brian Burg.
2306
2307         * UserInterface/Views/ClusterContentView.js:
2308         (WebInspector.ClusterContentView.prototype.get scrollableElements): Added.
2309         A default implementation for all cluster views.
2310
2311         * UserInterface/Views/DOMStorageContentView.js:
2312         (WebInspector.DOMStorageContentView.prototype.get scrollableElements): Deleted.
2313         This was duplicated in the class, removed one.
2314
2315         * UserInterface/Views/HeapAllocationsTimelineView.js:
2316         (WebInspector.HeapAllocationsTimelineView): Initialize _snapshotListScrollTop.
2317         (WebInspector.HeapAllocationsTimelineView.prototype.get scrollableElements): Added. Return elements
2318         based on what is showing.
2319
2320         (WebInspector.HeapAllocationsTimelineView.prototype.showHeapSnapshotList): Restore the scroll position
2321         of the DataGrid after it is added to the view.
2322
2323         (WebInspector.HeapAllocationsTimelineView.prototype.showHeapSnapshotTimelineRecord): Save the scroll position
2324         of the DataGrid before it is removed from the view.
2325
2326         * UserInterface/Views/ScriptClusterTimelineView.js:
2327         (WebInspector.ScriptClusterTimelineView.prototype.get scrollableElements): Deleted. Handled by the base class now.
2328
2329 2016-07-06  Timothy Hatcher  <timothy@apple.com>
2330
2331         Web Inspector: REGRESSION: Hitting ⌘T in Web Inspector no longer opens in new tab in Safari
2332         https://bugs.webkit.org/show_bug.cgi?id=159487
2333         rdar://problem/27188047
2334
2335         Change Command-T to Command-Option-T to open a new tab.
2336
2337         I also changed Command-1, etc. to Command-Option-1, etc. to switch tabs. The number commands
2338         conflicted similarly with Safari and didn't work for me as a Web Inspector shortcut at all.
2339         We can't use Command-Shift because of Command-Shift-3 and Command-Shift-4 for screenshots.
2340
2341         Reviewed by Joseph Pecoraro.
2342
2343         * UserInterface/Base/Main.js:
2344         (WebInspector.contentLoaded):
2345
2346 2016-07-06  Joseph Pecoraro  <pecoraro@apple.com>
2347
2348         Web Inspector: sometimes reloading a page with main resource selected will show an empty content view
2349         https://bugs.webkit.org/show_bug.cgi?id=158069
2350         <rdar://problem/26516710>
2351
2352         Reviewed by Timothy Hatcher.
2353
2354         * UserInterface/Views/DebuggerSidebarPanel.js:
2355         (WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView):
2356         Continue until we get one that works.
2357
2358         * UserInterface/Views/NavigationSidebarPanel.js:
2359         (WebInspector.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement):
2360         Avoid showing a content view for a background tab if it could steal
2361         the content view from a foreground tab. This is a targeted fix for
2362         reload + tab content view loading behavior. A more general fix would
2363         be reducing the work done by non-foreground tabs.
2364
2365         * UserInterface/Views/TabBrowser.js:
2366         (WebInspector.TabBrowser.prototype._tabBarItemSelected):
2367         Update navigation sidebar first so it is set when showing the TabContentView.
2368
2369 2016-07-06  Brian Burg  <bburg@apple.com>
2370
2371         Web Inspector: Uncaught Exception reporter should include the currently dispatching protocol event or request/response if applicable
2372         https://bugs.webkit.org/show_bug.cgi?id=159320
2373         <rdar://problem/27117754>
2374
2375         Reviewed by Timothy Hatcher and Joseph Pecoraro.
2376
2377         Keep track of the currently dispatched protocol response or protocol event and make
2378         them available to the uncaught exception reporter. If an internal exception is reported
2379         while dispatching an event or response, dump the protocol message(s) into the pre-filled
2380         bug report.
2381
2382         * UserInterface/Debug/UncaughtExceptionReporter.js:
2383         (stringifyAndTruncateObject): Added.
2384         Rearrange the code that generates the pre-filled report so it's easier to add optional sections.
2385
2386         * UserInterface/Protocol/InspectorBackend.js:
2387         (InspectorBackendClass):
2388         (InspectorBackendClass.prototype.get currentDispatchState): Expose the dispatching state.
2389         (InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
2390         (InspectorBackendClass.prototype._sendCommandToBackendExpectingPromise):
2391         Store the originating command request with the pendingResponse data so that we can examine
2392         the originating request if the response causes an error. This will cause request message objects
2393         to be garbage-collected after their responses are dispatched rather than when the request is sent.
2394         But, I don't forsee this being a performance problem since we should always get a command response
2395         and pending command responses do not typically accumulate except when the inspector first loads.
2396
2397         (InspectorBackendClass.prototype._dispatchResponse): Save the response being dispatched.
2398         (InspectorBackendClass.prototype._dispatchResponseToCallback): Simplify exception reporting.
2399         (InspectorBackendClass.prototype._dispatchEvent): Save the event being dispatched.
2400
2401 2016-07-05  Timothy Hatcher  <timothy@apple.com>
2402
2403         Web Inspector: Switch last uses of -webkit-linear-gradient() to linear-gradient()
2404         https://bugs.webkit.org/show_bug.cgi?id=159438
2405         rdar://problem/27183417
2406
2407         Reviewed by Joseph Pecoraro.
2408
2409         * UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:
2410         (.timeline-overview-graph.rendering-frame > .frame-marker):
2411         (body.window-inactive .timeline-overview-graph.rendering-frame > .frame-marker):
2412         * UserInterface/Views/TimelineRecordFrame.css:
2413         (.timeline-record-frame.tall):
2414         (.timeline-record-frame.selected):
2415         (body.window-inactive .timeline-record-frame.selected):
2416
2417 2016-07-05  Timothy Hatcher  <timothy@apple.com>
2418
2419         Web Inspector: Drop -webkit-calc() in completions and a single use
2420         https://bugs.webkit.org/show_bug.cgi?id=159435
2421         rdar://problem/27179340
2422
2423         Reviewed by Dean Jackson.
2424
2425         * UserInterface/Models/CSSKeywordCompletions.js:
2426         * UserInterface/Views/VisualStylePropertyEditorLink.css:
2427         (.visual-style-property-editor-link > .visual-style-property-editor-link-border):
2428
2429 2016-07-05  Timothy Hatcher  <timothy@apple.com>
2430
2431         Web Inspector: Drop the prefix from -webkit-image-set()
2432         https://bugs.webkit.org/show_bug.cgi?id=159433
2433         rdar://problem/27178887
2434
2435         Reviewed by Dean Jackson.
2436
2437         * UserInterface/Models/CSSKeywordCompletions.js:
2438         * UserInterface/Views/ApplicationCacheIcons.css:
2439         (.application-cache-manifest .icon):
2440         (.application-cache-frame .icon):
2441         * UserInterface/Views/CookieIcon.css:
2442         (.cookie-icon .icon):
2443         * UserInterface/Views/DOMStorageIcons.css:
2444         (.local-storage-icon .icon):
2445         (.session-storage-icon .icon):
2446         * UserInterface/Views/DatabaseIcon.css:
2447         (.database-icon .icon):
2448         * UserInterface/Views/DatabaseTableIcon.css:
2449         (.database-table-icon .icon):
2450         * UserInterface/Views/FolderIcon.css:
2451         (.folder-icon .icon):
2452         * UserInterface/Views/GradientSlider.css:
2453         (.gradient-slider-knob):
2454         (.gradient-slider-knob.selected):
2455         * UserInterface/Views/HoverMenu.css:
2456         (.hover-menu > img):
2457         * UserInterface/Views/ResourceIcons.css:
2458         (.resource-icon .icon):
2459         (.resource-icon.resource-type-document .icon):
2460         (.resource-icon.resource-type-image .icon):
2461         (.resource-icon.resource-type-font .icon):
2462         (.resource-icon.resource-type-stylesheet .icon):
2463         (.resource-icon.resource-type-script .icon):
2464         (.anonymous-script-icon .icon):
2465         (.source-map-resource.resource-icon .icon):
2466         (.source-map-resource.resource-icon.resource-type-stylesheet .icon):
2467         (.source-map-resource.resource-icon.resource-type-script .icon):
2468         (.large .resource-icon .icon):
2469         (.large .resource-icon.resource-type-document .icon):
2470         (.large .resource-icon.resource-type-image .icon):
2471         (.large .resource-icon.resource-type-font .icon):
2472         (.large .resource-icon.resource-type-stylesheet .icon):
2473         (.large .resource-icon.resource-type-script .icon):
2474         (.large .anonymous-script-icon .icon):
2475         (.large .source-map-resource.resource-icon .icon):
2476         (.large .source-map-resource.resource-icon.resource-type-stylesheet .icon):
2477         (.large .source-map-resource.resource-icon.resource-type-script .icon):
2478         * UserInterface/Views/Slider.css:
2479         (.slider > img):
2480         (.slider > img.dragging):
2481         * UserInterface/Views/SourceCodeTextEditor.css:
2482         (.hover-menu.color > img):
2483         * UserInterface/Views/TextEditor.css:
2484         (.text-editor > .CodeMirror .has-breakpoint .CodeMirror-linenumber::before):
2485         (.text-editor > .CodeMirror .breakpoint-resolved .CodeMirror-linenumber::before):
2486         (.text-editor > .CodeMirror .execution-line .CodeMirror-linenumber::after):
2487         * UserInterface/Views/TimelineIcons.css:
2488         (body:not(.mac-platform, .windows-platform) .network-icon .icon):
2489         (body:not(.mac-platform, .windows-platform) .network-icon.large .icon):
2490         (body:not(.mac-platform, .windows-platform) .layout-icon .icon):
2491         (body:not(.mac-platform, .windows-platform) .layout-icon.large .icon):
2492         (body:not(.mac-platform, .windows-platform) .script-icon .icon):
2493         (body:not(.mac-platform, .windows-platform) .script-icon.large .icon):
2494         (body:not(.mac-platform, .windows-platform) .rendering-frame-icon .icon):
2495         (body:not(.mac-platform, .windows-platform) .memory-icon .icon):
2496         (body:not(.mac-platform, .windows-platform) .heap-allocations-icon .icon):
2497         (body:not(.mac-platform, .windows-platform) .stopwatch-icon .icon):
2498
2499 2016-07-02  Joseph Pecoraro  <pecoraro@apple.com>
2500
2501         Web Inspector: CallFrame console.assert seen in tests (sourceCodeLocation instanceof SourceCodeLocation)
2502         https://bugs.webkit.org/show_bug.cgi?id=159368
2503
2504         Reviewed by Timothy Hatcher.
2505
2506         * UserInterface/Test.html:
2507         SourceCodeLocation was already included earlier. This redefines it and
2508         thereby breaks some things.
2509
2510 2016-07-02  Joseph Pecoraro  <pecoraro@apple.com>
2511
2512         inspector/debugger/command-line-api-exception.html flakily times out on mac
2513         https://bugs.webkit.org/show_bug.cgi?id=152029
2514         <rdar://problem/23813812>
2515
2516         Reviewed by Timothy Hatcher.
2517
2518         * UserInterface/Base/Object.js:
2519         (WebInspector.Object.addEventListener):
2520         Return the listener, this makes it cleaner to write tests.
2521
2522 2016-07-01  Joseph Pecoraro  <pecoraro@apple.com>
2523
2524         Web Inspector: Make enabling protocol logging in inspector tests easy to remember
2525         https://bugs.webkit.org/show_bug.cgi?id=159323
2526
2527         Reviewed by Brian Burg.
2528
2529         Now you just need to type InspectorTest.debug() or
2530         ProtocolTest.debug() and it will include stderr logging.
2531
2532         * UserInterface/Test/FrontendTestHarness.js:
2533         (FrontendTestHarness.prototype.debug):
2534         * UserInterface/Test/ProtocolTestHarness.js:
2535         (ProtocolTestHarness.prototype.debug):
2536         (ProtocolTestHarness):
2537         * UserInterface/Test/TestHarness.js:
2538         (TestHarness.prototype.debug):
2539
2540 2016-06-30  Matt Baker  <mattbaker@apple.com>
2541
2542         Unreviewed build fix.
2543
2544         * Localizations/en.lproj/localizedStrings.js:
2545         Add "Area" localized string.
2546
2547 2016-06-30  Joseph Pecoraro  <pecoraro@apple.com>
2548
2549         Web Inspector: Wrong function name next to scope
2550         https://bugs.webkit.org/show_bug.cgi?id=158210
2551         <rdar://problem/26543093>
2552
2553         Reviewed by Timothy Hatcher.
2554
2555         * UserInterface/Controllers/DebuggerManager.js:
2556         (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
2557         Include new payload data in the construction call.
2558         All the new data is optional, so we gracefully handle
2559         legacy backends.
2560
2561         * UserInterface/Models/ScopeChainNode.js:
2562         (WebInspector.ScopeChainNode):
2563         (WebInspector.ScopeChainNode.prototype.get type):
2564         (WebInspector.ScopeChainNode.prototype.get objects):
2565         (WebInspector.ScopeChainNode.prototype.get name):
2566         (WebInspector.ScopeChainNode.prototype.get location):
2567         (WebInspector.ScopeChainNode.prototype.get hash):
2568         Hash is a rough (name:sourceId:line:column) string for quick comparisons.
2569
2570         (WebInspector.ScopeChainNode.prototype.makeLocalScope):
2571         Make this an action you take on a scope, to avoid having to
2572         do it at construction time, or making it a generic setting.
2573
2574         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
2575         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
2576         This was wrong before. Move the work to CallFrame
2577         and change it to be correct.
2578
2579         * UserInterface/CallFrame.js:
2580         (WebInspector.CallFrame.prototype.mergedScopeChain):
2581
2582         This transforms the scope chain for a call frame from:
2583         
2584              scope1  scope2  scope3  scope4  scope5  scope6  scope7
2585               foo     foo     foo     bar     bar      -       -
2586              Block  Closure Closure Closure Closure   GLE     GBL
2587
2588         To:
2589              scope1  scope2&3   scope4&5  scope6  scope7
2590               foo      foo*       bar*      -       -
2591              Block    Local     Closure    GLE     GBL
2592
2593         Doing a few things:
2594
2595             - Merge the first two Closure scopes sharing a location.
2596               These are the "var" and "let" Closure scopes in a function,
2597               and it is better to present these together in the UI.
2598
2599             - Mark the first Closure scope within a function (*). When
2600               this is displayed in the UI, we can provide the name of
2601               the function: "Closure Scope (name)", and we even have
2602               location information that we can use to display a goto
2603               arrow if needed.
2604
2605             - Make the first Closure scope the Local scope if it
2606               matches the Call Frame's function name. This lets us
2607               display the section as "Local Variables".
2608
2609 2016-06-30  Matt Baker  <mattbaker@apple.com>
2610
2611         Web Inspector: add pixel area column to layout timeline view
2612         https://bugs.webkit.org/show_bug.cgi?id=148677
2613         <rdar://problem/22518762>
2614
2615         Reviewed by Timothy Hatcher.
2616
2617         The view can simply add the column. LayoutTimelineDataGridNode
2618         already includes area data and cell formatting.
2619
2620         * UserInterface/Views/LayoutTimelineView.js:
2621         (WebInspector.LayoutTimelineView):
2622
2623 2016-06-30  Brian Burg  <bburg@apple.com>
2624
2625         Web Inspector: the last normal tab cannot be closed with "Close Tab" context menu item
2626         https://bugs.webkit.org/show_bug.cgi?id=159317
2627         <rdar://problem/27042491>
2628
2629         Reviewed by Timothy Hatcher.
2630
2631         * UserInterface/Views/TabBarItem.js:
2632         (WebInspector.TabBarItem.prototype._handleContextMenuEvent):
2633         (WebInspector.TabBarItem): fix the expression that controls whether the item is disabled.
2634
2635 2016-06-30  Nikita Vasilyev  <nvasilyev@apple.com>
2636
2637         Web Inspector: Add "spring" to transition-timing-function value autocompletion
2638         https://bugs.webkit.org/show_bug.cgi?id=159313
2639         <rdar://problem/27114269>
2640
2641         Reviewed by Timothy Hatcher.
2642
2643         * UserInterface/Models/CSSKeywordCompletions.js:
2644
2645 2016-06-30  Commit Queue  <commit-queue@webkit.org>
2646
2647         Unreviewed, rolling out r202659.
2648         https://bugs.webkit.org/show_bug.cgi?id=159305
2649
2650         The test for this change times out on mac-wk2 debug and caused
2651         an existing test to crash. (Requested by ryanhaddad on
2652         #webkit).
2653
2654         Reverted changeset:
2655
2656         "Web Inspector: Wrong function name next to scope"
2657         https://bugs.webkit.org/show_bug.cgi?id=158210
2658         http://trac.webkit.org/changeset/202659
2659
2660 2016-06-29  Joseph Pecoraro  <pecoraro@apple.com>
2661
2662         Web Inspector: Wrong function name next to scope
2663         https://bugs.webkit.org/show_bug.cgi?id=158210
2664         <rdar://problem/26543093>
2665
2666         Reviewed by Brian Burg.
2667
2668         * UserInterface/Controllers/DebuggerManager.js:
2669         (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
2670         Include new payload data in the construction call.
2671         All the new data is optional, so we gracefully handle
2672         legacy backends.
2673
2674         * UserInterface/Models/ScopeChainNode.js:
2675         (WebInspector.ScopeChainNode):
2676         (WebInspector.ScopeChainNode.prototype.get type):
2677         (WebInspector.ScopeChainNode.prototype.get objects):
2678         (WebInspector.ScopeChainNode.prototype.get name):
2679         (WebInspector.ScopeChainNode.prototype.get location):
2680         (WebInspector.ScopeChainNode.prototype.get hash):
2681         Hash is a rough (name:sourceId:line:column) string for quick comparisons.
2682
2683         (WebInspector.ScopeChainNode.prototype.makeLocalScope):
2684         Make this an action you take on a scope, to avoid having to
2685         do it at construction time, or making it a generic setting.
2686
2687         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
2688         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
2689         This was wrong before. Move the work to CallFrame
2690         and change it to be correct.
2691
2692         * UserInterface/CallFrame.js:
2693         (WebInspector.CallFrame.prototype.mergedScopeChain):
2694
2695         This transforms the scope chain for a call frame from:
2696         
2697              scope1  scope2  scope3  scope4  scope5  scope6  scope7
2698               foo     foo     foo     bar     bar      -       -
2699              Block  Closure Closure Closure Closure   GLE     GBL
2700
2701         To:
2702              scope1  scope2&3   scope4&5  scope6  scope7
2703               foo      foo*       bar*      -       -
2704              Block    Local     Closure    GLE     GBL
2705
2706         Doing a few things:
2707
2708             - Merge the first two Closure scopes sharing a location.
2709               These are the "var" and "let" Closure scopes in a function,
2710               and it is better to present these together in the UI.
2711
2712             - Mark the first Closure scope within a function (*). When
2713               this is displayed in the UI, we can provide the name of
2714               the function: "Closure Scope (name)", and we even have
2715               location information that we can use to display a goto
2716               arrow if needed.
2717
2718             - Make the first Closure scope the Local scope if it
2719               matches the Call Frame's function name. This lets us
2720               display the section as "Local Variables".
2721
2722 2016-06-29  Brian Burg  <bburg@apple.com>
2723
2724         Web Inspector: Uncaught Exception page never shows if exception is thrown while processing a protocol event
2725         https://bugs.webkit.org/show_bug.cgi?id=159182
2726
2727         Reviewed by Joseph Pecoraro.
2728
2729         Since we catch exceptions raised during the handling of protocol responses and events, there
2730         is no way for these exceptions to trigger the global exception handler that shows the Uncaught
2731         Exception Reporter sheet. We should show these in the sheet because it makes them get fixed faster.
2732
2733         Add a new entry point, WebInspector.reportInternalError, that takes an error or string and
2734         a free-form map of strings to strings for storing additional information such as message data.
2735         Pass the error and any other relevant details to this entry point, which decides whether to
2736         show the uncaught exception reporter or quietly log the error to Inspector^2 console.
2737
2738         In future patches, I would like to do the following once the common errors are fixed:
2739          - enable reporting via Uncaught Exception Reporter for all engineering builds
2740          - move internal console.error call sites to use WebInspector.reportInternalError
2741
2742         * UserInterface/Base/Main.js: Add reportInternalError, which redirects to the uncaught
2743         exception reporter sheet or does console.error. It also adds a console.assert that could
2744         cause the debugger to pause if desired.
2745
2746         * UserInterface/Debug/UncaughtExceptionReporter.css:
2747         (.sheet-container): Make the report scrollable now that we could potentially show a lot of text.
2748
2749         * UserInterface/Debug/UncaughtExceptionReporter.js:
2750         (handleError): Also pass along the 'details' poperty.
2751         (formattedEntry): Refactor the code so it additionally prints out the keys and values of
2752         the 'details' property. It does not do any coercions, so callers must convert values to strings.
2753
2754         * UserInterface/Protocol/InspectorBackend.js:
2755         (InspectorBackendClass.prototype._dispatchResponse): Inlined a function.
2756         (InspectorBackendClass.prototype._dispatchResponseToCallback):
2757         (InspectorBackendClass.prototype._dispatchEvent):
2758         Report uncaught exceptions via WebInspector.reportInternalError.
2759
2760         (InspectorBackendClass.prototype._reportProtocolError): Deleted, inlined into the single use site.
2761
2762 2016-06-29  Joseph Pecoraro  <pecoraro@apple.com>
2763
2764         Web Inspector: Show Shadow Root type in DOM Tree
2765         https://bugs.webkit.org/show_bug.cgi?id=159236
2766         <rdar://problem/27068521>
2767
2768         Reviewed by Timothy Hatcher.
2769
2770         * Localizations/en.lproj/localizedStrings.js:
2771         "Shadow Content (type)" string.
2772
2773         * UserInterface/Models/DOMNode.js:
2774         (WebInspector.DOMNode):
2775         (WebInspector.DOMNode.prototype.shadowRoots):
2776         (WebInspector.DOMNode.prototype.shadowRootType):
2777         Initialize state and add accessors.
2778
2779         * UserInterface/Views/DOMTreeElement.js:
2780         (WebInspector.DOMTreeElement.shadowRootTypeDisplayName):
2781         (WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
2782         Better string when an element is a Shadow Root.
2783
2784         * UserInterface/Views/DOMTreeElementPathComponent.js:
2785         (WebInspector.DOMTreeElementPathComponent):
2786         Better to check the Shadow Root type.
2787
2788         * UserInterface/Views/DOMTreeOutline.css:
2789         (.tree-outline.dom .html-fragment.shadow):
2790         Opacity looks poor when there is a selection. Switch to gray.
2791
2792 2016-06-28  Nikita Vasilyev  <nvasilyev@apple.com>
2793
2794         REGRESSION (r188730): Web Inspector: Warning icons incorrectly positioned in CSS Rules sidebar
2795         https://bugs.webkit.org/show_bug.cgi?id=157869
2796         <rdar://problem/26356520>
2797
2798         Reviewed by Timothy Hatcher.
2799
2800         Before r188730, CSS text always had a line break as a prefix. r188730 started trimming text.
2801         This patch keeps trimming unnecessary whitespace but brings back required line break prefix.
2802
2803         * UserInterface/Models/CSSStyleDeclaration.js:
2804         (WebInspector.CSSStyleDeclaration.prototype.set text):
2805         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2806         Make PrefixWhitespace and SuffixWhitespace public.
2807
2808         (WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContent):
2809         (WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers.update):
2810         (WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers):
2811         Remove an if conditional as it's always true.
2812
2813 2016-06-28  Brian Burg  <bburg@apple.com>
2814
2815         Web Inspector: QuickConsole should update its selection when RuntimeManager.defaultExecutionContextIdentifier changes
2816         https://bugs.webkit.org/show_bug.cgi?id=159183
2817
2818         Reviewed by Timothy Hatcher.
2819
2820         Currently, the UI listens for state changes in the Frame tree to decide when to reset
2821         the selected execution context back to its default value. This is no good, because this
2822         should happen even if we have no UI (i.e., testing models only). The UI should simply
2823         display changes to the model rather than driving them based on other model changes.
2824
2825         Move the logic to reset the execution context into RuntimeManager. When the selected
2826         context changes, an event is fired which causes the QuickConsole to rebuild its path components.
2827
2828         * UserInterface/Controllers/RuntimeManager.js:
2829         (WebInspector.RuntimeManager):
2830         (WebInspector.RuntimeManager.prototype.set defaultExecutionContextIdentifier):
2831         Fire an event when the execution context actually changes.
2832
2833         (WebInspector.RuntimeManager.prototype._frameExecutionContextsCleared):
2834         Added. If the selected context was cleared, reset back to default.
2835
2836         * UserInterface/Models/Frame.js:
2837         (WebInspector.Frame.prototype.clearExecutionContexts):
2838         Include the contexts that were cleared so clients can match against them.
2839
2840         * UserInterface/Views/QuickConsole.js:
2841         (WebInspector.QuickConsole):
2842         Use the proper constant name. Both the old and new names evaluated to `undefined`.
2843         No need to keep track of the selected path component, it will always match the
2844         defaultExecutionContextIdentifier in RuntimeManager.
2845
2846         (WebInspector.QuickConsole.prototype.get selectedExecutionContextIdentifier):
2847         (WebInspector.QuickConsole.prototype.set selectedExecutionContextIdentifier):
2848         Forward to RuntimeManager. This name is less awkward for the UI code that manages selections.
2849
2850         (WebInspector.QuickConsole.prototype._executionContextPathComponentsToDisplay):
2851         Special-case for the main frame execution context.
2852
2853         (WebInspector.QuickConsole.prototype._framePageExecutionContextsChanged):
2854         Remove indirection.
2855
2856         (WebInspector.QuickConsole.prototype._frameExecutionContextsCleared):
2857         Fix the guard to handle undefined execution contexts in the case where it represents the main frame (undefined).
2858
2859         (WebInspector.QuickConsole.prototype._defaultExecutionContextChanged):
2860         Rebuild when the model changes.
2861
2862         (WebInspector.QuickConsole.prototype._pathComponentSelected): Simplify.
2863         (WebInspector.QuickConsole.prototype.get executionContextIdentifier):
2864         (WebInspector.QuickConsole.prototype._removeExecutionContextPathComponentForFrame):
2865         Move the fallback selection behavior into RuntimeManager.
2866
2867         (WebInspector.QuickConsole.prototype._updateExecutionContextPathComponentForFrame): Deleted.
2868         This has been dead code ever since we removed iOS 6 legacy support.
2869
2870 2016-06-27  Joseph Pecoraro  <pecoraro@apple.com>
2871
2872         Web Inspector: When modifying sessionStorage, localStorage gets updated
2873         https://bugs.webkit.org/show_bug.cgi?id=159181
2874         <rdar://problem/27043447>
2875
2876         Reviewed by Timothy Hatcher.
2877
2878         * UserInterface/Test/Test.js:
2879         (WebInspector.loaded):
2880         Add registration for StorageManager and StorageObserver.
2881
2882 2016-06-27  Brian Burg  <bburg@apple.com>
2883
2884         Web Inspector: RuntimeManager should not use view object WebInspector.quickConsole
2885         https://bugs.webkit.org/show_bug.cgi?id=128092
2886         <rdar://problem/15966526>
2887
2888         Reviewed by Timothy Hatcher.
2889
2890         This is a layering violation which makes it harder to use RuntimeManager.evaluateInInspectedWindow
2891         from a testing context where the QuickConsole view does not exist.
2892
2893         Store the selected execution context identifier on RuntimeManager and use it
2894         when doing subsequent evaluations that act on the currently selected frame.
2895
2896         * UserInterface/Controllers/RuntimeManager.js:
2897         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
2898         (WebInspector.RuntimeManager.prototype.saveResult):
2899         Use local state.
2900
2901         (WebInspector.RuntimeManager.prototype.get defaultExecutionContextIdentifier):
2902         (WebInspector.RuntimeManager.prototype.set defaultExecutionContextIdentifier):
2903         Added.
2904
2905         (WebInspector.RuntimeManager):
2906         * UserInterface/Models/ExecutionContext.js:
2907         (WebInspector.ExecutionContext):
2908         Move the symbolic name for the top level execution context to RuntimeManager.
2909
2910         * UserInterface/Test/Test.js:
2911         (WebInspector.loaded): No need to stub out WebInspector.QuickConsole any more.
2912
2913         * UserInterface/Views/QuickConsole.js:
2914         (WebInspector.QuickConsole.prototype._framePageExecutionContextsChanged):
2915         (WebInspector.QuickConsole.prototype._removeExecutionContextPathComponentForFrame):
2916         (WebInspector.QuickConsole.prototype._updateExecutionContextPathComponentForFrame):
2917         (WebInspector.QuickConsole.prototype._pathComponentSelected):
2918         For now, set RuntimeManager's selected execution context whenever we set the
2919         selected path component. In a future patch, we should invert the dependency and have
2920         the selected component change whenever RuntimeManager.defaultExecutionContext changes.
2921
2922 2016-06-23  Joseph Pecoraro  <pecoraro@apple.com>
2923
2924         Web Inspector: first heap snapshot taken when a page is reloaded happens before the reload navigation
2925         https://bugs.webkit.org/show_bug.cgi?id=158995
2926         <rdar://problem/26923778>
2927
2928         Reviewed by Brian Burg.
2929
2930         Let instruments decide to do work or not based on programmatic
2931         (backend initiated) starts and stop.
2932
2933         Programmatic start can happen due to Auto Capture or console.profile.
2934         Programmatic stop can happen due to console.profileEnd.
2935
2936         For example, this allows the frontend to avoid sending agents start/stop
2937         messages when the backend would have already started/stopped the agents.
2938
2939         * UserInterface/Controllers/TimelineManager.js:
2940         (WebInspector.TimelineManager):
2941         (WebInspector.TimelineManager.prototype.startCapturing):
2942         (WebInspector.TimelineManager.prototype.capturingStopped):
2943         (WebInspector.TimelineManager.prototype.autoCaptureStarted):
2944         (WebInspector.TimelineManager.prototype.programmaticCaptureStarted):
2945         Call Recording.start/stop with a programmatic flag so the frontend
2946         instruments can perform a more informed start/stop.
2947
2948         * UserInterface/Models/TimelineRecording.js:
2949         (WebInspector.TimelineRecording.prototype.start):
2950         (WebInspector.TimelineRecording.prototype.stop):
2951         Let the instruments decide to do work based on the start/stop
2952         being initiated by the backend or not.
2953
2954         * UserInterface/Models/HeapAllocationsInstrument.js:
2955         (WebInspector.HeapAllocationsInstrument.prototype.startInstrumentation):
2956         (WebInspector.HeapAllocationsInstrument.prototype.stopInstrumentation):
2957         * UserInterface/Models/Instrument.js:
2958         (WebInspector.Instrument.startLegacyTimelineAgent):
2959         (WebInspector.Instrument.prototype.startInstrumentation):
2960         (WebInspector.Instrument.prototype.stopInstrumentation):
2961         (WebInspector.Instrument):
2962         * UserInterface/Models/MemoryInstrument.js:
2963         (WebInspector.MemoryInstrument.prototype.startInstrumentation):
2964         (WebInspector.MemoryInstrument.prototype.stopInstrumentation):
2965         (WebInspector.MemoryInstrument):
2966         * UserInterface/Models/NetworkInstrument.js:
2967         * UserInterface/Models/ScriptInstrument.js:
2968         (WebInspector.ScriptInstrument.prototype.startInstrumentation):
2969         (WebInspector.ScriptInstrument.prototype.stopInstrumentation):
2970         (WebInspector.ScriptInstrument):
2971         Avoid sending start/stop tracking messages when programmatic.
2972         This still allows the instruments to do their own frontend tracking,
2973         such as the Heap agent triggering periodic snapshots.
2974
2975 2016-06-23  Joseph Pecoraro  <pecoraro@apple.com>
2976
2977         Web Inspector: Snapshots should be cleared at some point
2978         https://bugs.webkit.org/show_bug.cgi?id=157907
2979         <rdar://problem/26373610>
2980
2981         Reviewed by Timothy Hatcher.
2982
2983         Invalidate HeapSnapshotProxy objects when the page navigates.
2984         This allows us to clear our frontend data for the snapshots.
2985         When a snapshot is invalidated, it is disabled in the UI.
2986         This means you cannot select the snapshot or see content
2987         views for the snapshot. If you are in a snapshot when it is
2988         invalidated, you are taken out to the snapshot list.
2989
2990         * UserInterface/Main.html:
2991         New files.
2992
2993         * UserInterface/Proxies/HeapSnapshotProxy.js:
2994         (WebInspector.HeapSnapshotProxy):
2995         (WebInspector.HeapSnapshotProxy.invalidateSnapshotProxies):
2996         (WebInspector.HeapSnapshotProxy.prototype.get invalid):
2997         (WebInspector.HeapSnapshotProxy.prototype._invalidate):
2998         Keep track of valid snapshots, and provide a static method to invalidate them.
2999
3000         (WebInspector.HeapSnapshotProxy.prototype.updateForCollectionEvent):
3001         (WebInspector.HeapSnapshotProxy.prototype.allocationBucketCounts):
3002         (WebInspector.HeapSnapshotProxy.prototype.instancesWithClassName):
3003         (WebInspector.HeapSnapshotProxy.prototype.update):
3004         (WebInspector.HeapSnapshotProxy.prototype.nodeWithIdentifier):
3005         UI should only act on valid snapshots.
3006
3007         * UserInterface/Proxies/HeapSnapshotDiffProxy.js:
3008         (WebInspector.HeapSnapshotDiffProxy.prototype.get invalid):
3009         (WebInspector.HeapSnapshotDiffProxy.prototype.updateForCollectionEvent):
3010         (WebInspector.HeapSnapshotDiffProxy.prototype.allocationBucketCounts):
3011         (WebInspector.HeapSnapshotDiffProxy.prototype.instancesWithClassName):
3012         (WebInspector.HeapSnapshotDiffProxy.prototype.update):
3013         (WebInspector.HeapSnapshotDiffProxy.prototype.nodeWithIdentifier):
3014         UI should only act on valid snapshots.
3015
3016         * UserInterface/Proxies/HeapSnapshotWorkerProxy.js:
3017         (WebInspector.HeapSnapshotWorkerProxy.prototype._mainResourceDidChange):
3018         Invalidate and discard snapshots when the main frame navigates.
3019
3020         (WebInspector.HeapSnapshotWorkerProxy.prototype._handleMessage):
3021         (WebInspector.HeapSnapshotWorkerProxy):
3022         * UserInterface/Workers/HeapSnapshot/HeapSnapshotWorker.js:
3023         (HeapSnapshotWorker.prototype.clearSnapshots):
3024         (HeapSnapshotWorker.prototype._handleMessage):
3025         (HeapSnapshotWorker):
3026         A message may come in for a snapshot before it has been cleared.
3027         If that is the case, the object may not exist. Return an error so
3028         that the callback can be deleted on the calling side.
3029
3030         * UserInterface/Views/HeapAllocationsTimelineDataGridNodePathComponent.js:
3031         (WebInspector.HeapAllocationsTimelineDataGridNodePathComponent.prototype.get previousSibling):
3032         (WebInspector.HeapAllocationsTimelineDataGridNodePathComponent.prototype.get nextSibling):
3033         (WebInspector.HeapAllocationsTimelineDataGridNodePathComponent):
3034         Don't show invalid snapshots in page component picker.
3035
3036         * UserInterface/Views/HeapAllocationsTimelineOverviewGraph.css:
3037         (.timeline-overview-graph.heap-allocations > img.snapshot.invalid):
3038         * UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:
3039         (WebInspector.HeapAllocationsTimelineDataGridNode):
3040         (WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCellContent):
3041         (WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCells):
3042         (WebInspector.HeapAllocationsTimelineDataGridNode.prototype._heapSnapshotInvalidated):
3043         Give invalid snapshots an invalidated appearance in the snapshot list.
3044
3045         * UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:
3046         (WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.layout):
3047         * UserInterface/Views/HeapAllocationsTimelineView.css:
3048         (.timeline-view.heap-allocations > .data-grid tr.invalid):
3049         (.timeline-view.heap-allocations > .data-grid:not(:focus, .force-focus) tr.selected.invalid):
3050         Give invalid snapshots an invalidated appearance in the overview graph.
3051
3052         * UserInterface/Views/HeapAllocationsTimelineView.js:
3053         (WebInspector.HeapAllocationsTimelineView):
3054         (WebInspector.HeapAllocationsTimelineView.prototype.get selectionPathComponents):
3055         (WebInspector.HeapAllocationsTimelineView.prototype.closed):
3056         (WebInspector.HeapAllocationsTimelineView.prototype._heapSnapshotCollectionEvent.updateHeapSnapshotForEvent):
3057         (WebInspector.HeapAllocationsTimelineView.prototype._heapSnapshotCollectionEvent):
3058         (WebInspector.HeapAllocationsTimelineView.prototype._heapSnapshotInvalidated):
3059         (WebInspector.HeapAllocationsTimelineView.prototype._updateCompareHeapSnapshotButton):
3060         (WebInspector.HeapAllocationsTimelineView.prototype._dataGridNodeSelected):
3061         Handle interactions when snapshots in the list are invalidated.
3062
3063 2016-06-22  Brian Burg  <bburg@apple.com>
3064
3065         Web Inspector: don't start auto capturing if the Inspector window is not visible
3066         https://bugs.webkit.org/show_bug.cgi?id=159014
3067
3068         Reviewed by Joseph Pecoraro.
3069         <rdar://problem/26931269>
3070
3071         Followup, add a missing super.closed() call mentioned in review comments.
3072
3073         * UserInterface/Views/TimelineTabContentView.js:
3074         (WebInspector.TimelineTabContentView.prototype.closed):
3075
3076 2016-06-22  Brian Burg  <bburg@apple.com>
3077
3078         Web Inspector: don't start auto capturing if the Inspector window is not visible
3079         https://bugs.webkit.org/show_bug.cgi?id=159014
3080         <rdar://problem/26931269>
3081
3082         Reviewed by Joseph Pecoraro.
3083
3084         TimelineTabContentView should not tell the timeline manager to enable
3085         auto-capturing unless the Web Inspector UI is visible. If it is preloaded
3086         but not shown to the user, then auto-capturing may inadvertently disable
3087         the debugger, causing it to miss `debugger` statements and not bring the
3088         inspector to front.
3089
3090         * UserInterface/Controllers/TimelineManager.js:
3091         (WebInspector.TimelineManager.prototype.set autoCaptureOnPageLoad):
3092         Bail out if nothing changed. Coerce to a boolean since the backend requires a boolean.
3093
3094         * UserInterface/Views/TimelineTabContentView.js:
3095         (WebInspector.TimelineTabContentView): Listen for UI visibility changes.
3096         (WebInspector.TimelineTabContentView.prototype.shown):
3097         Enable auto-capturing if the UI is visible.
3098
3099         (WebInspector.TimelineTabContentView.prototype.closed): Added.
3100         Remove listeners on global objects so this tab doesn't leak.
3101
3102         (WebInspector.TimelineTabContentView.prototype._inspectorVisibilityChanged):
3103         Update the auto-capturing setting if the UI became visible or not visible.
3104
3105 2016-06-22  Nikita Vasilyev  <nvasilyev@apple.com>
3106
3107         Web Inspector: Simplify CSS rule for ContentBrowser navigation bar items
3108         https://bugs.webkit.org/show_bug.cgi?id=159000
3109
3110         Reviewed by Timothy Hatcher.
3111
3112         * UserInterface/Views/ContentBrowser.css:
3113         (.content-browser > .navigation-bar > .item):
3114         Both these values result in 28px, but `100%` is simplier.
3115
3116 2016-06-21  Nikita Vasilyev  <nvasilyev@apple.com>
3117
3118         REGRESSION(r201177): Web Inspector: ContentBrowser navigation bar should fit on a single line
3119         https://bugs.webkit.org/show_bug.cgi?id=158700
3120         <rdar://problem/26772058>
3121
3122         Reviewed by Joseph Pecoraro.
3123
3124         * UserInterface/Views/ContentBrowser.css:
3125         (.content-browser > .navigation-bar > .item):
3126         Set the height to 28px, as it was before r201177.
3127         Make it one pixel shorter than the navigation bar for better vertical alignment.
3128
3129 2016-06-20  Joseph Pecoraro  <pecoraro@apple.com>
3130
3131         Web Inspector: UncaughtExceptionReporter should handle null event.error
3132         https://bugs.webkit.org/show_bug.cgi?id=158971
3133
3134         Reviewed by Brian Burg.
3135
3136         * UserInterface/Debug/UncaughtExceptionReporter.js:
3137         Since `typeof null === "object"` handle uncaught exceptions where the
3138         Error object itself is null.
3139
3140 2016-06-20  Joseph Pecoraro  <pecoraro@apple.com>
3141
3142         Web Inspector: Snapshot List should show the total size and the total live size
3143         https://bugs.webkit.org/show_bug.cgi?id=157904
3144         <rdar://problem/26372833>
3145
3146         Reviewed by Brian Burg.
3147
3148         Include the live size of a snapshot in the snapshot list.
3149
3150         * Localizations/en.lproj/localizedStrings.js:
3151         New "Live Size" string.
3152
3153         * UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
3154         (HeapSnapshot):
3155         (HeapSnapshot.updateCategoriesAndMetadata):
3156         (HeapSnapshot.prototype.update):
3157         (HeapSnapshot.prototype.serialize):
3158         (HeapSnapshotDiff):
3159         (HeapSnapshotDiff.prototype.update):
3160         (HeapSnapshot.buildCategories): Deleted.
3161         (HeapSnapshot.prototype.updateCategories): Deleted.
3162         (HeapSnapshotDiff.prototype.updateCategories): Deleted.
3163         * UserInterface/Proxies/HeapSnapshotDiffProxy.js:
3164         (WebInspector.HeapSnapshotDiffProxy.prototype.updateForCollectionEvent):
3165         (WebInspector.HeapSnapshotDiffProxy.prototype.update):
3166         (WebInspector.HeapSnapshotDiffProxy.prototype.updateCategories): Deleted.
3167         * UserInterface/Proxies/HeapSnapshotProxy.js:
3168         (WebInspector.HeapSnapshotProxy):
3169         (WebInspector.HeapSnapshotProxy.deserialize):
3170         (WebInspector.HeapSnapshotProxy.prototype.get liveSize):
3171         (WebInspector.HeapSnapshotProxy.prototype.updateForCollectionEvent):
3172         (WebInspector.HeapSnapshotProxy.prototype.update):
3173         (WebInspector.HeapSnapshotProxy.prototype.updateCategories): Deleted.
3174         Rename "updateCategories" to "update" and update both categories
3175         and metadata, like the liveSize.
3176
3177         * UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:
3178         (WebInspector.HeapAllocationsTimelineDataGridNode):
3179         (WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCellContent):
3180         (WebInspector.HeapAllocationsTimelineDataGridNode.prototype._heapSnapshotCollectedNodes):
3181         Update live size after collection.
3182
3183         * UserInterface/Views/HeapAllocationsTimelineView.js:
3184         (WebInspector.HeapAllocationsTimelineView):
3185         Include a live size column in the DataGrid.
3186         (WebInspector.HeapAllocationsTimelineView.prototype.closed):
3187         Cleanup listeners appropriately.
3188
3189 2016-06-20  Joseph Pecoraro  <pecoraro@apple.com>
3190
3191         Web Inspector: console.profile should use the new Sampling Profiler
3192         https://bugs.webkit.org/show_bug.cgi?id=153499
3193         <rdar://problem/24352431>
3194
3195         Reviewed by Timothy Hatcher.
3196
3197         * UserInterface/Controllers/TimelineManager.js:
3198         (WebInspector.TimelineManager.prototype.programmaticCaptureStarted):
3199         (WebInspector.TimelineManager.prototype.programmaticCaptureStopped):
3200         (WebInspector.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStarted):
3201         (WebInspector.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStopped):
3202         For programmatic captures, automatically show the Script Timeline, since
3203         that is guarenteed to have been started by the backend. Start capturing
3204         without creating a new recording.
3205
3206         * UserInterface/Models/TimelineRecording.js:
3207         (WebInspector.TimelineRecording.prototype.stop):
3208         (WebInspector.TimelineRecording.prototype.addScriptInstrumentForProgrammaticCapture):
3209         When stopping for programmatic capture we don't need to disable
3210         instruments, the backend would have already done this.
3211
3212         * UserInterface/Protocol/ScriptProfilerObserver.js:
3213         (WebInspector.ScriptProfilerObserver.prototype.programmaticCaptureStarted):
3214         (WebInspector.ScriptProfilerObserver.prototype.programmaticCaptureStopped):
3215         (WebInspector.ScriptProfilerObserver):
3216         * UserInterface/Protocol/TimelineObserver.js:
3217         (WebInspector.TimelineObserver.prototype.programmaticCaptureStarted):
3218         (WebInspector.TimelineObserver.prototype.programmaticCaptureStopped):
3219         (WebInspector.TimelineObserver):
3220         Pass through Web and JSContext programmatic capture events.
3221
3222 2016-06-19  Nikita Vasilyev  <nvasilyev@apple.com>
3223
3224         Web Inspector: Remove Sidebar z-index:0 workaround for scrollbars and position:sticky section headers
3225         https://bugs.webkit.org/show_bug.cgi?id=158882
3226
3227         Reviewed by Darin Adler.
3228
3229         The z-index:0 workaround is no longer needed as it doesn't change anything.
3230
3231         * UserInterface/Views/Sidebar.css:
3232         (.sidebar > .panel): Deleted.
3233
3234 2016-06-17  Commit Queue  <commit-queue@webkit.org>
3235
3236         Unreviewed, rolling out r202152.
3237         https://bugs.webkit.org/show_bug.cgi?id=158897
3238
3239         The new test is very unstable, timing out frequently
3240         (Requested by ap on #webkit).
3241
3242         Reverted changeset:
3243
3244         "Web Inspector: console.profile should use the new Sampling
3245         Profiler"
3246         https://bugs.webkit.org/show_bug.cgi?id=153499
3247         http://trac.webkit.org/changeset/202152
3248
3249 2016-06-16  Joseph Pecoraro  <pecoraro@apple.com>
3250
3251         Web Inspector: console.profile should use the new Sampling Profiler
3252         https://bugs.webkit.org/show_bug.cgi?id=153499
3253         <rdar://problem/24352431>
3254
3255         Reviewed by Timothy Hatcher.
3256
3257         * UserInterface/Controllers/TimelineManager.js:
3258         (WebInspector.TimelineManager.prototype.programmaticCaptureStarted):
3259         (WebInspector.TimelineManager.prototype.programmaticCaptureStopped):
3260         (WebInspector.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStarted):
3261         (WebInspector.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStopped):
3262         For programmatic captures, automatically show the Script Timeline, since
3263         that is guarenteed to have been started by the backend. Start capturing
3264         without creating a new recording.
3265
3266         * UserInterface/Models/TimelineRecording.js:
3267         (WebInspector.TimelineRecording.prototype.stop):
3268         (WebInspector.TimelineRecording.prototype.addScriptInstrumentForProgrammaticCapture):
3269         When stopping for programmatic capture we don't need to disable
3270         instruments, the backend would have already done this.
3271
3272         * UserInterface/Protocol/ScriptProfilerObserver.js:
3273         (WebInspector.ScriptProfilerObserver.prototype.programmaticCaptureStarted):
3274         (WebInspector.ScriptProfilerObserver.prototype.programmaticCaptureStopped):
3275         (WebInspector.ScriptProfilerObserver):
3276         * UserInterface/Protocol/TimelineObserver.js:
3277         (WebInspector.TimelineObserver.prototype.programmaticCaptureStarted):
3278         (WebInspector.TimelineObserver.prototype.programmaticCaptureStopped):
3279         (WebInspector.TimelineObserver):
3280         Pass through Web and JSContext programmatic capture events.
3281
3282 2016-06-16  Joseph Pecoraro  <pecoraro@apple.com>
3283
3284         REGRESSION (r201538): Web Inspector: Border over Allocations Views is too thick
3285         https://bugs.webkit.org/show_bug.cgi?id=158846
3286
3287         Reviewed by Timothy Hatcher.
3288
3289         * UserInterface/Views/HeapAllocationsTimelineView.css:
3290         (.timeline-view.heap-allocations > .content-view-container > .content-view): Deleted.
3291
3292 2016-06-16  Matt Baker  <mattbaker@apple.com>
3293
3294         Unreviewed build fix.
3295
3296         * UserInterface/Views/DataGrid.js:
3297         (WebInspector.DataGrid.prototype.createSettings):
3298         "showColumn" -> "setColumnVisible".
3299
3300 2016-06-16  Matt Baker  <mattbaker@apple.com>
3301
3302         Web Inspector: DataGrid should manage its own settings
3303         https://bugs.webkit.org/show_bug.cgi?id=158675
3304         <rdar://problem/26761338>
3305
3306         Reviewed by Timothy Hatcher.
3307
3308         Move grid sorting settings (sort order, column identifier) into DataGrid,
3309         removing duplicated code from various views. A new grid method, "createSettings",
3310         takes an identifier which is used as a prefix for naming the grid's settings.
3311
3312         So that the new behavior is easy to use and hard to misuse, default values
3313         for each setting are set to the current value of the associated property.
3314         The result is that:
3315
3316             grid.sortColumnIdentifier = "columnA";
3317             grid.createSettings("myGrid");
3318
3319         will use "columnA" as the default value the first time the setting is created.
3320
3321         * UserInterface/Views/ApplicationCacheFrameContentView.js:
3322         (WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):
3323         * UserInterface/Views/CookieStorageContentView.js:
3324         (WebInspector.CookieStorageContentView.prototype._rebuildTable):
3325         * UserInterface/Views/DOMStorageContentView.js:
3326         (WebInspector.DOMStorageContentView):
3327         * UserInterface/Views/DataGrid.js:
3328         (WebInspector.DataGrid):
3329         (WebInspector.DataGrid.prototype.createSettings):
3330         (WebInspector.DataGrid.prototype.get identifier): Deleted.
3331         (WebInspector.DataGrid.prototype.set identifier): Deleted.
3332         (WebInspector.DataGrid.prototype.set sortOrderSetting): Deleted.
3333         (WebInspector.DataGrid.prototype.set sortColumnIdentifierSetting): Deleted.
3334         * UserInterface/Views/HeapAllocationsTimelineView.js:
3335         (WebInspector.HeapAllocationsTimelineView):
3336         * UserInterface/Views/HeapSnapshotContentView.js:
3337         (WebInspector.HeapSnapshotContentView):
3338         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
3339         (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
3340         * UserInterface/Views/LayoutTimelineView.js:
3341         (WebInspector.LayoutTimelineView):
3342         * UserInterface/Views/NetworkGridContentView.js:
3343         (WebInspector.NetworkGridContentView):
3344         * UserInterface/Views/NetworkTimelineView.js:
3345         (WebInspector.NetworkTimelineView):
3346         * UserInterface/Views/ProfileView.js:
3347         (WebInspector.ProfileView):
3348         * UserInterface/Views/RenderingFrameTimelineView.js:
3349         (WebInspector.RenderingFrameTimelineView):
3350         * UserInterface/Views/ScriptDetailsTimelineView.js:
3351         (WebInspector.ScriptDetailsTimelineView):
3352
3353 2016-06-15  Joseph Pecoraro  <pecoraro@apple.com>
3354
3355         Uncaught Exception: TypeError: undefined is not an object (evaluating 'imageElement.classList')
3356         https://bugs.webkit.org/show_bug.cgi?id=158808
3357         <rdar://problem/26821034>
3358
3359         Reviewed by Brian Burg.
3360
3361         * UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:
3362         (WebInspector.HeapAllocationsTimelineOverviewGraph.prototype._updateSnapshotMarkers):
3363         If the record is out of the layout bounds of the overview graph, the overview graph
3364         may not have created an image element yet, so bail. Later, when the image element
3365         is created, it would get the appropriate style if the record is selected.
3366
3367 2016-06-14  Matt Baker  <mattbaker@apple.com>
3368
3369         Web Inspector: Rename DataGrid.showColumn to setColumnVisible
3370         https://bugs.webkit.org/show_bug.cgi?id=158764
3371         <rdar://problem/26801448>
3372
3373         Reviewed by Joseph Pecoraro.
3374
3375         * UserInterface/Views/DataGrid.js:
3376         (WebInspector.DataGrid):
3377         Drive-by update to initialize "this._columnChooserEnabled".
3378
3379         (WebInspector.DataGrid.prototype.set identifier):
3380         (WebInspector.DataGrid.prototype.insertColumn):
3381         (WebInspector.DataGrid.prototype._collapseColumnGroupWithCell):
3382         Use new method name.
3383
3384         (WebInspector.DataGrid.prototype._contextMenuInHeader):
3385         Drive-by style update.
3386
3387 2016-06-14  Matt Baker  <mattbaker@apple.com>
3388
3389         Web Inspector: Storage tab should allow hiding columns in the cookies grid
3390         https://bugs.webkit.org/show_bug.cgi?id=158767
3391         <rdar://problem/26803568>
3392
3393         Reviewed by Joseph Pecoraro.
3394
3395         * UserInterface/Views/CookieStorageContentView.js:
3396         (WebInspector.CookieStorageContentView.prototype._rebuildTable):
3397         Enable column chooser, exclude Name and Value columns.
3398
3399 2016-06-14  Nikita Vasilyev  <nvasilyev@apple.com>
3400
3401         Web Inspector: Visual Sidebar: Remove "Text -> Content" subsection
3402         https://bugs.webkit.org/show_bug.cgi?id=158758
3403         <rdar://problem/26799628>
3404
3405         Reviewed by Timothy Hatcher.
3406
3407         "content" CSS property only works with pseudo elements ::before and ::after.
3408         It doesn't do anything for regular (non pseudo) elements. Remove it to
3409         reduce UI clutter.
3410
3411         * UserInterface/Views/VisualStyleDetailsPanel.js:
3412         (WebInspector.VisualStyleDetailsPanel.prototype.initialLayout):
3413         (WebInspector.VisualStyleDetailsPanel.prototype._populateContentSection): Deleted.
3414         * UserInterface/Views/VisualStylePropertyEditor.css:
3415         (.visual-style-property-container > *:first-child:matches(.visual-style-property-value-container)): Deleted.
3416
3417 2016-06-14  Joseph Pecoraro  <pecoraro@apple.com>
3418
3419         Web Inspector: Rename Timeline.setAutoCaptureInstruments to Timeline.setInstruments
3420         https://bugs.webkit.org/show_bug.cgi?id=158762
3421
3422         Reviewed by Timothy Hatcher.
3423
3424         * UserInterface/Controllers/TimelineManager.js:
3425         (WebInspector.TimelineManager.prototype._updateAutoCaptureInstruments):
3426         (WebInspector.TimelineManager):
3427
3428 2016-06-14  Benjamin Poulain  <bpoulain@apple.com>
3429
3430         Add the unprefixed version of the pseudo element ::placeholder
3431         https://bugs.webkit.org/show_bug.cgi?id=158653
3432
3433         Reviewed by Dean Jackson.
3434
3435         * UserInterface/Views/FilterBar.css:
3436         (.filter-bar > input[type="search"]::placeholder):
3437         (.filter-bar > input[type="search"]::-webkit-input-placeholder): Deleted.
3438         * UserInterface/Views/FindBanner.css:
3439         (.find-banner.console-find-banner > input[type="search"]::placeholder):
3440         (.find-banner.console-find-banner > input[type="search"]::-webkit-input-placeholder): Deleted.
3441         * UserInterface/Views/GoToLineDialog.css:
3442         (.go-to-line-dialog > div > input::placeholder):
3443         (.go-to-line-dialog > div > input::-webkit-input-placeholder): Deleted.
3444         * UserInterface/Views/OpenResourceDialog.css:
3445         (.open-resource-dialog > .field > input::placeholder):
3446         (.open-resource-dialog > .field > input::-webkit-input-placeholder): Deleted.
3447         * UserInterface/Views/SearchBar.css:
3448         (.search-bar > input[type="search"]::placeholder):
3449         (.search-bar > input[type="search"]::-webkit-input-placeholder): Deleted.
3450         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
3451
3452 2016-06-14  Nikita Vasilyev  <nvasilyev@apple.com>
3453
3454         Web Inspector: Introduce --navigation-bar-height CSS variable
3455         https://bugs.webkit.org/show_bug.cgi?id=158752
3456
3457         Reviewed by Timothy Hatcher.
3458
3459         Abstract a commonly repeated height value (29px) into a variable.
3460
3461         * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
3462         (.sidebar > .panel.details.css-style > .content.has-filter-bar):
3463         * UserInterface/Views/DebuggerSidebarPanel.css:
3464         (.sidebar > .panel.navigation.debugger > :matches(.content, .empty-content-placeholder)):
3465         * UserInterface/Views/FilterBar.css:
3466         (.filter-bar):
3467         * UserInterface/Views/NavigationBar.css:
3468         (.navigation-bar):
3469         * UserInterface/Views/NavigationSidebarPanel.css:
3470         (.sidebar > .panel.navigation > .content):
3471         (.sidebar > .panel.navigation > .overflow-shadow.top):
3472         * UserInterface/Views/NetworkSidebarPanel.css:
3473         (.sidebar > .panel.navigation.network > .title-bar):
3474         * UserInterface/Views/ResourceSidebarPanel.css:
3475         (.sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)):
3476         * UserInterface/Views/SearchSidebarPanel.css:
3477         (.sidebar > .panel.navigation.search > :matches(.content, .empty-content-placeholder)):
3478         (.sidebar > .panel.navigation.search > .search-bar):
3479         * UserInterface/Views/Sidebar.css:
3480         (.sidebar.has-navigation-bar > .panel):
3481         * UserInterface/Views/StorageSidebarPanel.css:
3482         (.sidebar > .panel.navigation.storage > :matches(.content, .empty-content-placeholder)):
3483         * UserInterface/Views/TimelineRecordingContentView.css:
3484         (.content-view.timeline-recording > .content-browser .recording-progress):
3485         * UserInterface/Views/Variables.css:
3486         (:root):
3487
3488 2016-06-14  Saam Barati  <sbarati@apple.com>
3489
3490         Follow up to: Web Inspector: Call Trees view should have a 'Top Functions'-like mode
3491         https://bugs.webkit.org/show_bug.cgi?id=158555
3492         <rdar://problem/26712544>
3493
3494         Unreviewed follow up patch.
3495
3496         - Move a long if-else sequence to a switch statement.
3497         - Fix a copy-paste typo in a Symbol(.) enum.
3498
3499         * UserInterface/Models/CallingContextTree.js:
3500         (WebInspector.CallingContextTree.prototype.updateTreeWithStackTrace):
3501
3502 2016-06-13  Joseph Pecoraro  <pecoraro@apple.com>
3503
3504         Web Inspector: Show Exception Stack in UncaughtExceptionReporter view
3505         https://bugs.webkit.org/show_bug.cgi?id=158657
3506         <rdar://problem/26754441>
3507
3508         Reviewed by Darin Adler.
3509
3510         * UserInterface/Debug/UncaughtExceptionReporter.css:
3511         (.uncaught-exception-sheet li):
3512         Make newlines significant.
3513
3514         * UserInterface/Debug/UncaughtExceptionReporter.js:
3515         (unblockEventHandlers):
3516         (handleError):
3517         (handleLinkClick):
3518         (formattedEntry):
3519         Format the exception and a possible stack with a bit of sanitizing.
3520
3521 2016-06-13  Matt Baker  <mattbaker@apple.com>
3522
3523         Web Inspector: Filter Records not applying to new records
3524         https://bugs.webkit.org/show_bug.cgi?id=158213
3525         <rdar://problem/26543912>
3526
3527         Reviewed by Timothy Hatcher.
3528
3529         This patch makes the following improvements to timeline grid filtering:
3530
3531             - Records are filtered as they are added to the grid.
3532             - Timeline view no longer triggers a filter refresh while the
3533               current time changes while recording.
3534             - Filters are refreshed whenever the current timeline view changes.
3535
3536         * UserInterface/Views/DataGrid.js:
3537         (WebInspector.DataGrid.prototype.hasFilters):
3538         Helper function to check for custom and text filters.
3539
3540         (WebInspector.DataGrid.prototype._applyFiltersToNodeAndDispatchEvent):
3541         Encapsulate node state change and event dispatch, which was previously
3542         done in multiple places.
3543
3544         (WebInspector.DataGrid.prototype.insertChild):
3545         Filter incoming node if needed.
3546
3547         (WebInspector.DataGrid.prototype._updateFilter.createIteratorForNodesToBeFiltered):
3548         (WebInspector.DataGrid.prototype._updateFilter):
3549         (WebInspector.DataGrid.prototype.yieldableTaskWillProcessItem):
3550         Use new convenience functions.
3551
3552         (WebInspector.DataGrid.prototype.hasCustomFilters): Deleted.
3553         Renamed `hasFilters`.
3554
3555         * UserInterface/Views/TimelineRecordingContentView.js:
3556         (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
3557         Refresh grid filters on view change.
3558
3559         * UserInterface/Views/TimelineView.js:
3560         (WebInspector.TimelineView.prototype.set startTime):
3561         (WebInspector.TimelineView.prototype.set endTime):
3562         Schedule filter change notification when selection bounds changes.
3563
3564         (WebInspector.TimelineView.prototype._timesDidChange):
3565         (WebInspector.TimelineView.prototype._scheduleFilterDidChange):
3566         (WebInspector.TimelineView):
3567
3568 2016-06-13  Saam Barati  <sbarati@apple.com>
3569
3570         Web Inspector: Call Trees view should have a 'Top Functions'-like mode
3571         https://bugs.webkit.org/show_bug.cgi?id=158555
3572         <rdar://problem/26712544>
3573
3574         Reviewed by Timothy Hatcher.
3575
3576         This patch adds a Top Functions view that is similar to Instruments'
3577         Top Functions view. I really wanted to add this view because I've
3578         been doing a lot of performance debugging and I've exclusively 
3579         used the Top Functions view and I want the Inspector to also have
3580         this view. I like to think of it as a more sophisticated version of the bottom-up view.
3581         
3582         Top Functions works by treating every frame as a root in the tree.
3583         Top functions view then presents a list of "roots". This is the same
3584         as all other views, which also present a list of roots, but in this case,
3585         every frame is a root. Bottom Up is great for nailing in specific performance
3586         problems in exactly one frame. But Bottom Up doesn't give you good context about where
3587         a specific frame is in the call tree and how frames are related by having
3588         a caller or some path of shared callers. For example, consider this call tree:
3589                  (program)
3590                  /        \
3591                 /          \
3592            (many nodes...)  
3593               / 
3594              /
3595             (parent)
3596             /   \
3597            /     \
3598          (leaf1)  (leaf2)
3599         
3600         Suppose that 'leaf1' is super hot, and 'leaf2' is moderately hot.
3601         If we look at this through Bottom Up view, we will see 'leaf1'
3602         is super hot, but it will take more scrolling to see that 'leaf2'
3603         is moderately hot. Lets say that 'parent' is also moderately hot,
3604         but that the majority of its time isn't self time. With Bottom Up view,
3605         there is no good way to see that 'leaf1' and 'leaf2' are both nodes under 'parent'.
3606         With Top Down, you can find this information, but it requires a ton of drilling down into
3607         the tree (i.e, you must expand past the 'many nodes...' I drew above). It's inconvenient to
3608         use Top Down here for indentation alone. Bottom up will tell you that 'leaf1' is super hot,
3609         and that 'leaf2' and 'parent' are moderately hot, but it doesn't show how they're related
3610         in the original tree. It's important to see that 'parent's total time is very high
3611         because it itself is moderately hot, and it has a child node that is super hot, and
3612         another child that's moderately 'hot'. For the sake of this example, let's pretend
3613         that 85% of the program's time is spent inside 'parent'. Seeing this information through
3614         'Top Functions' is easy because this information filters to the top of the list. Specifically,
3615         when using 'Top Functions' sorted by Total Time. Because every node is a root, there will be
3616         a top-level entry for every frame in the program. Specifically, there will be a top-level node
3617         for 'parent' in my above example. Because I've sorted this view by Total Time, I will see '(program)'
3618         first. That's because 100% of execution time is under the '(program)' frame. Then, I might see
3619         a few other nodes that also run the entire time because '(program)' calls them, and they eventually
3620         call into other things that never leave the stack. These will also have time ranges near 100%.
3621         But, only a few nodes after that, I'll see 'parent' in the list because it accounts for 85% of
3622         execution time. Immediately, I will see that it has some self time, and that it has two child
3623         nodes that have self time. This is really helpful.
3624         
3625         Let's consider another example where it's not easy in Top Down to get the full picture of 'parent':
3626                    (program)
3627                     /  |  \
3628                  (... many nodes...)
3629                   /           \
3630             (many nodes...)   (many nodes...)
3631                  /             \
3632                parent         parent
3633                  |              |
3634                 leaf1          leaf2
3635         
3636         
3637         If we viewed this program in Top Down, we don't get a full picture of 'parent'
3638         because it has its time distributed in two different subsections of the tree.
3639         Specifically, lets say it has 70% of time in the leaf1 path, and 30% of the
3640         time in the leaf2 path. We want a way to see these things together. It's impossible
3641         to do this in Top Down or Bottom Up. But, in Top Functions view, we get the view that
3642         we want to see because we treat 'parent' as a root of the tree. Because we do this,
3643         we will create the following sub tree in the Top Functions view:
3644                 parent
3645                /      \
3646              leaf1   leaf2
3647         This happens naturally because when 'parent' is a root, we add all its children
3648         to its subtree.
3649         
3650         Constructing this tree is really easy. What we do is take any arbitrary stack
3651         trace of length n, and treat is as n separate stack traces. Specifically, we
3652         perform the following operation for any stack trace S.
3653         
3654         S = [A, B, C, D]
3655         (A is the entry frame, and D is the top of the stack).
3656         We will transform this into a list of stack traces S' like so:
3657         S' = [[A, B, C, D], [B, C, D], [C, D], [D]]
3658         
3659         If we then run the normal top down tree algorithm on this set of stack
3660         traces, all nodes get treated as roots, and voila, we get the Top Functions view.
3661
3662         * Localizations/en.lproj/localizedStrings.js:
3663         * UserInterface/Controllers/TimelineManager.js:
3664         * UserInterface/Main.html:
3665         * UserInterface/Models/CallingContextTree.js:
3666         * UserInterface/Models/TimelineRecording.js:
3667         * UserInterface/Views/ScriptProfileTimelineView.js:
3668         * UserInterface/Views/TextToggleButtonNavigationItem.css: Added.
3669         * UserInterface/Views/TextToggleButtonNavigationItem.js: Added.
3670
3671 2016-06-13  Matt Baker  <mattbaker@apple.com>
3672
3673         Web Inspector: Add ability to show/hide DataGird columns
3674         https://bugs.webkit.org/show_bug.cgi?id=158676
3675         <rdar://problem/26761573>
3676
3677         Reviewed by Timothy Hatcher.
3678
3679         Make it possible to show/hide grid columns using the grid header
3680         context menu. This patch enables the new behavior for most of the
3681         timeline grids.
3682
3683         * UserInterface/Views/DataGrid.js:
3684         (WebInspector.DataGrid):
3685         (WebInspector.DataGrid.prototype.get identifier):
3686         (WebInspector.DataGrid.prototype.set identifier):
3687         An identifier for the grid instance, for managing per-grid settings.
3688         Setting the id causes settings to be created, and their values to be
3689         applied to the grid.
3690
3691         (WebInspector.DataGrid.prototype.get columnChooserEnabled):
3692         (WebInspector.DataGrid.prototype.set columnChooserEnabled):
3693         Enable showing/hiding columns via the grid header.
3694
3695         (WebInspector.DataGrid.prototype.insertColumn):
3696         (WebInspector.DataGrid.prototype.showColumn):
3697         Set column visibility and hidden column setting, then perform layout.
3698
3699         (WebInspector.DataGrid.prototype._collapseColumnGroupWithCell):
3700         (WebInspector.DataGrid.prototype._contextMenuInHeader):
3701         Create column chooser menu items if necessary.
3702
3703         (WebInspector.DataGrid.prototype._showColumn): Deleted.
3704         (WebInspector.DataGrid.prototype._hideColumn): Deleted.
3705         Replaced by `showColumn`.
3706
3707         * UserInterface/Views/LayoutTimelineView.js:
3708         (WebInspector.LayoutTimelineView):
3709         Always show "type" and "name" columns.
3710
3711         * UserInterface/Views/NetworkTimelineView.js:
3712         (WebInspector.NetworkTimelineView):
3713         * UserInterface/Views/RenderingFrameTimelineView.js:
3714         (WebInspector.RenderingFrameTimelineView):
3715         * UserInterface/Views/ScriptDetailsTimelineView.js:
3716         (WebInspector.ScriptDetailsTimelineView):
3717         Always show "name" column.
3718
3719         * UserInterface/Views/TimelineDataGrid.js:
3720         (WebInspector.TimelineDataGrid):
3721         Enable column chooser.
3722
3723 2016-06-10  Joseph Pecoraro  <pecoraro@apple.com>
3724
3725         Web Inspector: <template> content should not be hidden as Shadow Content
3726         https://bugs.webkit.org/show_bug.cgi?id=158654
3727
3728         Reviewed by Ryosuke Niwa.
3729
3730         * Localizations/en.lproj/localizedStrings.js:
3731         New "Template Content" string.
3732
3733         * UserInterface/Models/DOMNode.js:
3734         (WebInspector.DOMNode):
3735         Don't treat template content as shadow content.
3736
3737         * UserInterface/Views/DOMTreeElement.js:
3738         (WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
3739         Custom string for template content fragment.
3740
3741 2016-06-10  Matt Baker  <mattbaker@apple.com>
3742
3743         Web Inspector: heap snapshot comparison view shows nothing if later snapshot is chosen first
3744         https://bugs.webkit.org/show_bug.cgi?id=158584
3745         <rdar://problem/26727849>
3746
3747         Reviewed by Timothy Hatcher.
3748
3749         ALways compare the the later snapshot to the earlier snapshot,
3750         regardless of selection order.
3751
3752         * UserInterface/Views/HeapAllocationsTimelineView.js:
3753         (WebInspector.HeapAllocationsTimelineView):
3754         (WebInspector.HeapAllocationsTimelineView.prototype._dataGridNodeSelected):
3755         Swap shapshots if the first has a greater identifier than the second.
3756         Drive-by cleanup: null out `_baselineDataGridNode` since it isn't used
3757         after the comparison completes.
3758
3759 2016-06-10  Matt Baker  <mattbaker@apple.com>
3760
3761         Web Inspector: rendering frames timeline "60fps" horizontal guide is mispositioned after switching timeline modes
3762         https://bugs.webkit.org/show_bug.cgi?id=158587
3763         <rdar://problem/26728174>
3764
3765         Reviewed by Timothy Hatcher.
3766
3767         When the view mode changes we iterate over all overview graphs, updating
3768         their visibility as needed. Graphs being shown perform layout, even though
3769         the overview's state is in transition: its offset height may still change.
3770
3771         A simple fix is to use TimelineOverviewGraph.height instead of the graph
3772         element's offset height when performing layout.
3773
3774         * UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
3775         (WebInspector.RenderingFrameTimelineOverviewGraph.prototype.layout):
3776
3777 2016-06-10  Matt Baker  <mattbaker@apple.com>
3778
3779         REGRESSION (r201538): Web Inspector: 1px gap above timeline progress view
3780         https://bugs.webkit.org/show_bug.cgi?id=158626
3781
3782         Reviewed by Joseph Pecoraro.
3783
3784         Adjust progress view top position to account for grid border changes.
3785
3786         * UserInterface/Views/TimelineRecordingContentView.css:
3787         (.content-view.timeline-recording > .content-browser .recording-progress):
3788
3789 2016-06-10  Matt Baker  <mattbaker@apple.com>
3790
3791         Web Inspector: REGRESSION (r201538): Web Inspector: Border under JS Call Trees content view is too thick
3792         https://bugs.webkit.org/show_bug.cgi?id=158624
3793         <rdar://problem/26743633>
3794
3795         Reviewed by Joseph Pecoraro.
3796
3797         Remove top border from <th> elements.
3798
3799         * UserInterface/Views/ProfileView.css:
3800         (.profile > .data-grid th): Deleted.
3801
3802 2016-06-09  Joseph Pecoraro  <pecoraro@apple.com>
3803
3804         REGRESSION: Web Inspector: IndexedDB does not show ObjectStore data
3805         https://bugs.webkit.org/show_bug.cgi?id=158592
3806         <rdar://problem/26730696>
3807
3808         Reviewed by Timothy Hatcher.
3809
3810         * UserInterface/Views/DataGrid.js:
3811         (WebInspector.DataGrid.prototype._noteRowRemoved):
3812         (WebInspector.DataGridNode.prototype._detach):
3813         When rows are removed in the non-Virtual DataGrids, we should
3814         actually remove the row.
3815
3816         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
3817         (WebInspector.IndexedDatabaseObjectStoreContentView):
3818         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData.processEntries):
3819         (WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData):
3820         Don't use the delete operator. Use a boolean.
3821
3822 2016-06-09  Nikita Vasilyev  <nvasilyev@apple.com>
3823
3824         Web Inspector: Support Command-P for quick open
3825         https://bugs.webkit.org/show_bug.cgi?id=158579
3826         <rdar://problem/26726751>
3827
3828         Reviewed by Timothy Hatcher.
3829
3830         * UserInterface/Base/Main.js:
3831         (WebInspector.contentLoaded):
3832
3833 2016-06-09  Nikita Vasilyev  <nvasilyev@apple.com>
3834
3835         REGRESSION (r194717): Web Inspector: Elements tab: an element loses focus when selected by Up/Down key
3836         https://bugs.webkit.org/show_bug.cgi?id=157768
3837         <rdar://problem/26311155>
3838
3839         Reviewed by Timothy Hatcher.
3840
3841         Remove _previousFocusedSection and _newInspectorRuleSelector since it was used only
3842         to focus on a newly created section (added by clicking on "+" button).
3843
3844         Introduce _inspectorSection and _isInspectorSectionPendingFocus.
3845
3846         * UserInterface/Views/CSSStyleDeclarationSection.js:
3847         (WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorBlurActiveEditor): Deleted.
3848         (WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste): Deleted.
3849         No longer needed, it was only used by _previousFocusedSection and _newInspectorRuleSelector.
3850
3851         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
3852         (WebInspector.CSSStyleDeclarationTextEditor.): Deleted.
3853         No londer needed, it was only used by _previousFocusedSection.
3854
3855         * UserInterface/Views/RulesStyleDetailsPanel.js:
3856         (WebInspector.RulesStyleDetailsPanel):
3857         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
3858         (WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):
3859         (WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
3860         (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorFocused): Deleted.
3861         (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionBlurActiveEditor): Deleted.
3862         (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionFocusNewInspectorRuleWithSelector): Deleted.
3863
3864 2016-06-08  Joseph Pecoraro  <pecoraro@apple.com>
3865
3866         REGRESSION: Web Inspector: Should be able to evaluate "{a:1, b:2}" in the console
3867         https://bugs.webkit.org/show_bug.cgi?id=158548
3868         <rdar://problem/26708513>
3869
3870         Reviewed by Timothy Hatcher.
3871
3872         * UserInterface/Controllers/RuntimeManager.js:
3873         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
3874         Switch the many parameters to an options dictionary.
3875         Include a new option for sourceURL appender, so that
3876         Console evaluations can have its own append.
3877
3878         * UserInterface/Controllers/JavaScriptLogViewController.js:
3879         (WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
3880         Use the appendWebInspectorConsoleEvaluationSourceURL appender.
3881
3882         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
3883         (WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.evaluated):