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