7f3c46d98189de082b7a0759a41272b551716406
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2016-01-04  Devin Rousso  <dcrousso+webkit@gmail.com>
2
3         Web Inspector: Comma separated values in the Visual sidebar are appended with )
4         https://bugs.webkit.org/show_bug.cgi?id=152653
5
6         Reviewed by Timothy Hatcher.
7
8         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
9         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set value):
10         Modified the RexExp used to split the comma separated value to account for strings
11         with commas inside parenthesis (such as rgba() or hsla()) as well as ones without
12         commas (such as "arial" and "red").
13
14 2016-01-03  Devin Rousso  <dcrousso+webkit@gmail.com>
15
16         Web Inspector: Visual sidebar selector section displays inherited section for non-editable rules
17         https://bugs.webkit.org/show_bug.cgi?id=152659
18
19         Reviewed by Brian Burg.
20
21         * UserInterface/Views/VisualStyleSelectorSection.js:
22         (WebInspector.VisualStyleSelectorSection.prototype.update):
23         Only add a new inherited section header if it will contain at least one inherited rule.
24
25 2016-01-02  Devin Rousso  <dcrousso+webkit@gmail.com>
26
27         Web Inspector: List all resources that are initiated by the selected resource in the Network tab
28         https://bugs.webkit.org/show_bug.cgi?id=152647
29
30         Reviewed by Timothy Hatcher.
31
32         Selecting resources in the Network tab will now display a list of all resources
33         that the selected resource loaded, allowing for easier understanding of the
34         relationship between all the resources loaded on a page.
35
36         * Localizations/en.lproj/localizedStrings.js:
37         * UserInterface/Base/Main.js:
38         Added functions to generate link(s) to Resource instead of SourceCodeLocation.
39
40         * UserInterface/Models/Resource.js:
41         (WebInspector.Resource):
42         (WebInspector.Resource.prototype.get initiatedResources):
43         (WebInspector.Resource.prototype.addInitiatedResource):
44         Each time a resource is added, if it has an initiator, it adds itself to the
45         initiator's list of initiated resources.
46
47         * UserInterface/Views/Main.css:
48         (.resource-list > .resource-link):
49         (.resource-list > .resource-link::before):
50         (.resource-list > .resource-link + .resource-link):
51         (.resource-link):
52
53         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
54         (WebInspector.ResourceDetailsSidebarPanel):
55         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
56
57 2016-01-02  Devin Rousso  <dcrousso+webkit@gmail.com>
58
59         Web Inspector: Add list-style properties to Visual Sidebar
60         https://bugs.webkit.org/show_bug.cgi?id=152631
61
62         Reviewed by Timothy Hatcher.
63
64         Seeing as lists are very common in web pages across the internet, adding
65         a section to let users edit the properties unique to lists seems prudent.
66
67         * Localizations/en.lproj/localizedStrings.js:
68         * UserInterface/Images/ListStylePositionInside.svg: Added.
69         * UserInterface/Images/ListStylePositionOutside.svg: Added.
70         * UserInterface/Main.html:
71         Re-added UserInterface/Views/VisualStyleURLInput.js
72
73         * UserInterface/Views/VisualStyleDetailsPanel.js:
74         (WebInspector.VisualStyleDetailsPanel):
75         (WebInspector.VisualStyleDetailsPanel.prototype._populateListStyleSection):
76
77         * UserInterface/Views/VisualStyleKeywordIconList.css:
78         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon):
79         Added specified color property to ensure that :active doesn't break the color of the svg.
80
81         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:matches(.computed, .selected)):
82         (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected):
83         Changed the background-color and border-color values to match the rest of Web Inspector.
84
85         * UserInterface/Views/VisualStyleKeywordIconList.js:
86         (WebInspector.VisualStyleKeywordIconList):
87         (WebInspector.VisualStyleKeywordIconList.dashToCapital): Deleted.
88         (WebInspector.VisualStyleKeywordIconList.createListItem):
89         The "initial" keyword will also use UserInterface/Images/VisualStyleNone.svg
90
91         * UserInterface/Views/VisualStyleURLInput.js: Added.
92         Previously removed in r192705.
93
94 2016-01-02  Alberto Garcia  <berto@igalia.com>
95
96         [GTK] webkit 2.3.5 build failure with python 3.3.4
97         https://bugs.webkit.org/show_bug.cgi?id=128971
98
99         Reviewed by Michael Catanzaro.
100
101         Make sure that the stdin encoding is 'UTF-8' if using Python 3,
102         otherwise the build will break.
103
104         * Scripts/cssmin.py:
105
106 2016-01-01  Devin Rousso  <dcrousso+webkit@gmail.com>
107
108         Web Inspector: shadow visual sidebar section can be confused with the box shadow section
109         https://bugs.webkit.org/show_bug.cgi?id=148107
110
111         Reviewed by Brian Burg.
112
113         * Localizations/en.lproj/localizedStrings.js:
114         * UserInterface/Views/VisualStyleDetailsPanel.js:
115         (WebInspector.VisualStyleDetailsPanel):
116         Changed title of "Shadow" sub-section in "Background" to "Box Shadow".
117
118 2016-01-01  Devin Rousso  <dcrousso+webkit@gmail.com>
119
120         Web Inspector: The Computed Styles Properties section shows warning icons and doesn't update if collapsed
121         https://bugs.webkit.org/show_bug.cgi?id=152609
122
123         Reviewed by Brian Burg.
124
125         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
126         (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
127         If the CodeMirror instance is read-only, don't add any warning icons.
128
129         * UserInterface/Views/ComputedStyleDetailsPanel.js:
130         (WebInspector.ComputedStyleDetailsPanel):
131         (WebInspector.ComputedStyleDetailsPanel.prototype._handleCollapsedStateChanged):
132         The properties text editor will now refresh whenever the details section
133         becomes un-collapsed.
134
135         * UserInterface/Views/DetailsSection.js:
136         (WebInspector.DetailsSection.prototype.set collapsed):
137         Now fires an event with the current collapsed state as data.
138
139 2015-12-31  Matt Baker  <mattbaker@apple.com>
140
141         Web Inspector: "No Filter Results" message overlaps Debugger sidebar sections
142         https://bugs.webkit.org/show_bug.cgi?id=150608
143
144         Reviewed by Brian Burg.
145
146         * UserInterface/Views/DebuggerSidebarPanel.js:
147         (WebInspector.DebuggerSidebarPanel.showResourcesWithIssuesOnlyFilterFunction):
148         Style cleanup.
149         (WebInspector.DebuggerSidebarPanel):
150         Add breakpoints tree to the details section before adding Global Breakpoint
151         elements, since adding them will trigger filtering.
152         (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
153         Simplified selection management between the various tree outlines.
154         (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
155         Style cleanup.
156         (WebInspector.DebuggerSidebarPanel.prototype.get hasSelectedElement): Deleted.
157         Defer to the base class implementation.
158         (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange.deselectCallStackContentTreeElements): Deleted.
159         (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange.deselectBreakpointContentTreeElements): Deleted.
160         (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange.deselectPauseReasonContentTreeElements): Deleted.
161         These are no longer needed, since the list of visible tree elements list can be used
162         to manage tree element selection is a more general way.
163
164         * UserInterface/Views/NavigationSidebarPanel.css:
165         Empty content placeholders are now inserted into the DOM as a sibling of the
166         tree that was filtered. As such, they can be a child of a details section, or
167         the sidebar's content element.
168         (.sidebar > .panel.navigation > .content .empty-content-placeholder):
169         Styles for all empty content placeholders.
170         (.sidebar > .panel.navigation > .content > .empty-content-placeholder):
171         Styles for empty content placeholders that fill the sidebar's content element.
172         (.sidebar > .panel.navigation > .content .message):
173         Styles for all empty content placeholders.
174         (.sidebar > .panel.navigation > .empty-content-placeholder): Deleted.
175         (.sidebar > .panel.navigation > .empty-content-placeholder > .message): Deleted.
176
177         * UserInterface/Views/NavigationSidebarPanel.js:
178         (WebInspector.NavigationSidebarPanel):
179         Track the tree outline which currently has a selection.
180         Manage a map of content placeholders
181         (WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline):
182         (WebInspector.NavigationSidebarPanel.prototype.get hasSelectedElement):
183         Check all visible content trees for a selected element.
184         (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
185         (WebInspector.NavigationSidebarPanel.prototype.treeElementForRepresentedObject):
186         Check all visible content trees for the represented object.
187         (WebInspector.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
188         (WebInspector.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
189         (WebInspector.NavigationSidebarPanel.prototype.updateEmptyContentPlaceholder):
190         No sidebars currently have more than one filterable content tree outline, but in
191         the future we will want to support this. Empty content placeholder visibility
192         is now done per tree outline.
193         (WebInspector.NavigationSidebarPanel.prototype.show):
194         Focus the tree outline that most recently had the selection, or the
195         first tree outline in the visible tree list, if it exists.
196         (WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults.checkTreeOutlineForEmptyFilterResults):
197         Tree is considered filtered if no visible filterable tree elements are found.
198         (WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults):
199         Check all visible trees that support filtering.
200         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
201         Support for filtering multiple content trees.
202         (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
203         Check if the element's tree outline supports filtering, before applying filters.
204         (WebInspector.NavigationSidebarPanel.prototype._treeSelectionDidChange):
205         Update the selected tree outline.
206         (WebInspector.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded):
207         Create a new empty content placeholder element for the tree.
208         (WebInspector.NavigationSidebarPanel.prototype.get contentTreeOutlineElement): Deleted.
209         No longer used.
210
211         * UserInterface/Views/TimelineSidebarPanel.js:
212         (WebInspector.TimelineSidebarPanel.prototype.get hasSelectedElement): Deleted.
213         Defer to the base class implementation.
214
215 2015-12-29  Devin Rousso  <dcrousso+webkit@gmail.com>
216
217         Web Inspector: Styling of invalid selector persists when changing the selected node
218         https://bugs.webkit.org/show_bug.cgi?id=152456
219
220         Reviewed by Brian Burg.
221
222         If the user changes the selector of a CSS rule to be invalid (e.g. having
223         a { or ; character), it is expected that the invalid indicator will be removed
224         once the user changes nodes or reverts the selector to its previous value.
225
226         * Localizations/en.lproj/localizedStrings.js:
227         * UserInterface/Views/CSSStyleDeclarationSection.css:
228         (.style-declaration-section > .header > .icon.toggle-able:hover):
229         (.style-declaration-section > .header > .icon.toggle-able:active):
230         (.style-declaration-section:not(.invalid-selector) > .header > .icon.toggle-able:hover): Deleted.
231         Added better :hover and :active styles.
232
233         * UserInterface/Views/CSSStyleDeclarationSection.js:
234         (WebInspector.CSSStyleDeclarationSection):
235         (WebInspector.CSSStyleDeclarationSection.prototype.refresh):
236         (WebInspector.CSSStyleDeclarationSection.prototype._handleIconElementClicked):
237         If the selector is invalid, simply refresh the section to regenerate the
238         original selector with correct content, specificity, and highlighting.
239
240         (WebInspector.CSSStyleDeclarationSection.prototype.get _hasInvalidSelector): Deleted.
241         Moved the state of the invalid selector to a member
242         variable instead of a DOM class.
243
244         (WebInspector.CSSStyleDeclarationSection.prototype._updateSelectorIcon):
245         Renamed from _markSelector for clarity.
246
247         * UserInterface/Views/VisualStyleSelectorTreeItem.css:
248         (.item.visual-style-selector-item.selector-invalid > .icon:hover):
249         (.item.visual-style-selector-item.selector-invalid > .icon:active):
250         (.item.visual-style-selector-item.selector-invalid > .icon):
251         Added :hover and :active styles.
252
253         * UserInterface/Views/VisualStyleSelectorTreeItem.js:
254         (WebInspector.VisualStyleSelectorTreeItem):
255         (WebInspector.VisualStyleSelectorTreeItem.prototype.onattach):
256         (WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector):
257         (WebInspector.VisualStyleSelectorTreeItem.prototype._updateSelectorIcon):
258         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleIconElementClicked):
259         (WebInspector.VisualStyleSelectorTreeItem.prototype._selectorChanged): Deleted.
260         Changed the names of a few functions to provide better
261         consistency across the classes in the Style sidebar.
262
263 2015-12-27  Brian Burg  <bburg@apple.com>
264
265         Web Inspector: improve pre-filled bugzilla link on Uncaught Exception reporter sheet
266         https://bugs.webkit.org/show_bug.cgi?id=152402
267
268         Reviewed by Joseph Pecoraro.
269
270         Include the UA string, inspected page URL, and a template that includes
271         steps to reproduce and notes. Other common headings (regression, expected,
272         results, summary) are omitted because they are unlikely to be known when
273         an uncaught exception occurs, or are obvious ("shouldn't throw exception").
274
275         * UserInterface/Debug/UncaughtExceptionReporter.js:
276
277 2015-12-21  Nikita Vasilyev  <nvasilyev@apple.com>
278
279         WebInspector: Can't open a new tab: Uncaught Exception: TypeError: this.isNewTabWithTypeAllowed is not a function
280         https://bugs.webkit.org/show_bug.cgi?id=152471
281
282         Reviewed by Timothy Hatcher.
283
284         * UserInterface/Base/Main.js:
285         (WebInspector._updateNewTabButtonState):
286         Don't use arrow functions because of https://webkit.org/b/152497 "Arrow functions: 'this' isn't lexically bound"
287
288 2015-12-21  Nikita Vasilyev  <nvasilyev@apple.com>
289
290         Web Inspector: Remove unused WebInspector.Object.removeAllListeners
291         https://bugs.webkit.org/show_bug.cgi?id=152474
292
293         Reviewed by Timothy Hatcher.
294
295         * UserInterface/Base/Object.js:
296         (WebInspector.Object.removeAllListeners): Deleted.
297         (WebInspector.Object.prototype.removeAllListeners): Deleted.
298
299 2015-12-20  Dan Bernstein  <mitz@apple.com>
300
301         Remove unused setToolbarHeight
302         https://bugs.webkit.org/show_bug.cgi?id=152466
303
304         Reviewed by Darin Adler.
305
306         * UserInterface/Base/Main.js:
307         (WebInspector.contentLoaded):
308         * UserInterface/Protocol/InspectorFrontendHostStub.js:
309         (window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.setToolbarHeight): Deleted.
310
311 2015-12-19  Dan Bernstein  <mitz@apple.com>
312
313         [Mac] WebKit contains dead source code for OS X Mavericks and earlier
314         https://bugs.webkit.org/show_bug.cgi?id=152462
315
316         Reviewed by Alexey Proskuryakov.
317
318         - Removed build setting definitions for OS X 10.9 and earlier, and simplified defintions
319           that became uniform across all OS X versions as a result:
320
321         * Configurations/Base.xcconfig:
322         * Configurations/DebugRelease.xcconfig:
323         * Configurations/Version.xcconfig:
324
325         * Scripts/copy-user-interface-resources.pl: Removed code to delete Images/Legacy.
326
327         * UserInterface/Images/Legacy: Removed this empty directory.
328
329 2015-12-18  Matt Baker  <mattbaker@apple.com>
330
331         Web Inspector: Make it possible to debug injected scripts when the Debug UI is enabled
332         https://bugs.webkit.org/show_bug.cgi?id=152445
333
334         Reviewed by Joseph Pecoraro.
335
336         * UserInterface/Base/Main.js:
337         Added function to check for debug UI.
338
339         * UserInterface/Base/Object.js:
340         Added notification for debug UI enabled state change.
341
342         * UserInterface/Base/Utilities.js:
343         (isWebInspectorInternalScript):
344         (isWebInspectorDebugScript):
345         Added functions to check for internal and debug inspector scripts.
346
347         * UserInterface/Controllers/DebuggerManager.js:
348         (WebInspector.DebuggerManager):
349         Maintain a list of inspector debug scripts, so that the manager can
350         add and remove them when the debug UI is enabled/disabled.
351         (WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
352         (WebInspector.DebuggerManager.prototype.reset):
353         Clear the list of inspector debug scripts.
354         (WebInspector.DebuggerManager.prototype.debuggerDidPause):
355         (WebInspector.DebuggerManager.prototype.scriptDidParse):
356         Skip internal inspector scripts. Debug inspector scripts are tracked,
357         and an added event is dispatched if the debug UI is enabled.
358         (WebInspector.DebuggerManager.prototype._debugUIEnabledDidChange):
359         Dispatch added/removed events for inspector debug scripts.
360
361         * UserInterface/Debug/Bootstrap.js:
362         (WebInspector.runBootstrapOperations):
363         Expose changes to the debug UI setting to the reset of the UI, by dispatching
364         a WebInspector.Notification.DebugUIEnabledDidChange event.
365
366         * UserInterface/Protocol/RemoteObject.js:
367         (WebInspector.RemoteObject.prototype.findFunctionSourceCodeLocation):
368         Only resolve inspector debug source locations when the debug UI is enabled.
369
370         * UserInterface/Test/Test.js:
371         Reimplemented debug UI check for tests. Always returns false.
372
373         * UserInterface/Views/DebuggerSidebarPanel.js:
374         (WebInspector.DebuggerSidebarPanel.prototype._addScript):
375         Removed check for inspector debug scripts. DebuggerManager filters scripts as needed.
376         (WebInspector.DebuggerSidebarPanel.prototype._scriptRemoved):
377         Handle DebuggerManager ScriptRemoved events. Only applies to debug scripts.
378
379         * UserInterface/Views/ResourceSidebarPanel.js:
380         (WebInspector.ResourceSidebarPanel):
381         (WebInspector.ResourceSidebarPanel.prototype._scriptWasRemoved):
382         Handle DebuggerManager ScriptRemoved events. Only applies to debug scripts.
383         (WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
384         Removed check for inspector debug scripts. DebuggerManager filters scripts as needed.
385
386 2015-12-17  Joseph Pecoraro  <pecoraro@apple.com>
387
388         Web Inspector: Remove "local" scope type from the protocol
389         https://bugs.webkit.org/show_bug.cgi?id=152409
390
391         Reviewed by Timothy Hatcher.
392
393         * UserInterface/Controllers/DebuggerManager.js:
394         (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
395
396 2015-12-17  Joseph Pecoraro  <pecoraro@apple.com>
397
398         Web Inspector: CSS warning's fake CallFrame is not creating a valid payload
399         https://bugs.webkit.org/show_bug.cgi?id=152413
400
401         Reviewed by Timothy Hatcher.
402
403         * UserInterface/Views/ConsoleMessageView.js:
404         (WebInspector.ConsoleMessageView.prototype._appendLocationLink):
405         This attempts to create a CallFrame from a Console.CallFrame payload,
406         but this was missing the required functionName string parameter.
407
408 2015-12-17  Joseph Pecoraro  <pecoraro@apple.com>
409
410         Provide a way to distinguish a nested lexical block from a function's lexical block
411         https://bugs.webkit.org/show_bug.cgi?id=152361
412
413         Reviewed by Saam Barati.
414
415         * Localizations/en.lproj/localizedStrings.js:
416         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
417         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
418         New "Block Variables" string.
419
420         * UserInterface/Models/ScopeChainNode.js:
421         New "Block" scope type, and update existing types.
422
423         * UserInterface/Controllers/DebuggerManager.js:
424         (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
425         Parse the protocol type to frontend types. Use the protocol generated enum.
426
427 2015-12-17  Joseph Pecoraro  <pecoraro@apple.com>
428
429         Web Inspector: Improve names in Debugger Call Stack section when paused
430         https://bugs.webkit.org/show_bug.cgi?id=152398
431
432         Reviewed by Brian Burg.
433
434         * UserInterface/Controllers/DebuggerManager.js:
435         (WebInspector.DebuggerManager.prototype.debuggerDidPause):
436         Use a new fromPayload helper to construct the CallFrame and share code.
437
438         * UserInterface/Models/CallFrame.js:
439         (WebInspector.CallFrame.functionNameFromPayload):
440         (WebInspector.CallFrame.programCodeFromPayload):
441         (WebInspector.CallFrame.fromDebuggerPayload):
442         (WebInspector.CallFrame.fromPayload):
443         Add a new way to construct a call frame. There are two kinds of
444         CallFrame payloads in the protocol:
445         - Debugger.CallFrame, this new path
446         - Console.CallFrame, the pre-existing path
447
448 2015-12-17  Brian Burg  <bburg@apple.com>
449
450         Web Inspector: control whether to collect and dump protocol messages using a WebInspector.Setting
451         https://bugs.webkit.org/show_bug.cgi?id=151635
452
453         Reviewed by Joseph Pecoraro.
454
455         Follow-up fix to stop double-logging everything.
456
457         * UserInterface/Protocol/LoggingProtocolTracer.js:
458         (WebInspector.LoggingProtocolTracer.prototype._processEntry):
459
460 2015-12-17  Joseph Pecoraro  <pecoraro@apple.com>
461
462         Web Inspector: Improve console.trace, make it more like console.assert and inline the message
463         https://bugs.webkit.org/show_bug.cgi?id=152352
464
465         Reviewed by Timothy Hatcher.
466
467         * Localizations/en.lproj/localizedStrings.js:
468         New "Trace" related strings.
469
470         * UserInterface/Views/ConsoleMessageView.js:
471         (WebInspector.ConsoleMessageView.prototype.expand):
472         Since we auto-expand Trace messages for their Call Stack, don't also
473         auto-expand a single inner object, which may be big and push the
474         actual stack trace off the screen.
475         
476         (WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
477         Behave like Assert messages and absorb a message string, and include
478         extra arguments gracefully.
479
480         (WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
481         For expandable messages with simple extra arguments (console.trace with
482         primitives and backtrace, or console.assert with primitives and backtrace)
483         we were hiding the inline lossless previews and not showing them as a
484         bulleted list below. We can just keep the lossless previews inline in the
485         title, since they were only put there because they are small and lossless.
486
487         (WebInspector.ConsoleMessageView.prototype.toClipboardString):
488         No need to hard code "console.trace()" in the clipboard.
489
490         * UserInterface/Views/ConsoleMessageView.css:
491         (.console-message.expandable.expanded :matches(.console-message-preview, .console-message-preview-divider):not(.inline-lossless)):
492         (.console-message.expandable.expanded :matches(.console-message-preview, .console-message-preview-divider)): Deleted.
493         Don't hide the inline lossless preview in the console message title when it is inline-lossless.
494
495         * UserInterface/Views/ObjectTreeView.js:
496         (WebInspector.ObjectTreeView.prototype.expand):
497         Do not allow expanding a loss-less preview.
498
499 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
500
501         Web Inspector: Add JSContext Script Profiling
502         https://bugs.webkit.org/show_bug.cgi?id=151899
503
504         Reviewed by Brian Burg.
505
506         Enable the Timeline tab for JSContext inspection. Currently only
507         JSContext inspection will use the ScriptProfiler domain, it will
508         be enabled for Page inspection in a follow-up.
509
510         First pass at the UI creates basic ScriptTimelineRecords for
511         ScriptProfiler events. At the end of recording, when profiles
512         are downloaded, it attaches profiles to the timeline records
513         and refreshes the Scripts timeline.
514
515         * UserInterface/Base/Main.js:
516         (WebInspector.loaded):
517         * UserInterface/Controllers/TimelineManager.js:
518         (WebInspector.TimelineManager):
519         (WebInspector.TimelineManager.defaultInstruments):
520         (WebInspector.TimelineManager.prototype.computeElapsedTime):
521         (WebInspector.TimelineManager.prototype.scriptProfilerIsTracking):
522         (WebInspector.TimelineManager.prototype._loadNewRecording):
523         (WebInspector.TimelineManager.prototype._mainResourceDidChange):
524         (WebInspector.TimelineManager.prototype._resourceWasAdded):
525         (WebInspector.TimelineManager.prototype._garbageCollected):
526         (WebInspector.TimelineManager.prototype._addRecord): Deleted.
527         * UserInterface/Main.html:
528         * UserInterface/Models/Instrument.js:
529         (WebInspector.Instrument.startLegacyTimelineAgent):
530         * UserInterface/Models/ScriptInstrument.js:
531         (WebInspector.ScriptInstrument.prototype.startInstrumentation):
532         (WebInspector.ScriptInstrument.prototype.stopInstrumentation):
533         (WebInspector.ScriptInstrument):
534         * UserInterface/Models/ScriptTimelineRecord.js:
535         (WebInspector.ScriptTimelineRecord.prototype.get profilePayload):
536         (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
537         (WebInspector.ScriptTimelineRecord):
538         (WebInspector.ScriptTimelineRecord.EventType.displayName):
539         * UserInterface/Models/Timeline.js:
540         (WebInspector.Timeline.prototype.refresh):
541         * UserInterface/Models/TimelineRecording.js:
542         (WebInspector.TimelineRecording.sourceCodeTimelinesSupported):
543         (WebInspector.TimelineRecording.prototype.timelineForRecordType):
544         (WebInspector.TimelineRecording.prototype.addRecord):
545         * UserInterface/Protocol/ScriptProfilerObserver.js: Copied from Source/WebInspectorUI/UserInterface/Models/ScriptInstrument.js.
546         (WebInspector.ScriptProfilerObserver.prototype.trackingStart):
547         (WebInspector.ScriptProfilerObserver.prototype.trackingUpdate):
548         (WebInspector.ScriptProfilerObserver.prototype.trackingComplete):
549         (WebInspector.ScriptProfilerObserver):
550         * UserInterface/Views/ScriptTimelineView.js:
551         (WebInspector.ScriptTimelineView):
552         (WebInspector.ScriptTimelineView.prototype._processPendingRecords):
553         (WebInspector.ScriptTimelineView.prototype._scriptTimelineRecordRefreshed):
554         * UserInterface/Views/TimelineRecordTreeElement.js:
555         (WebInspector.TimelineRecordTreeElement):
556         * UserInterface/Views/TimelineTabContentView.js:
557         (WebInspector.TimelineTabContentView.isTabAllowed):
558
559 2015-12-17  Matt Baker  <mattbaker@apple.com>
560
561         Web Inspector: REGRESSION (r193913): Popover covers completion suggestions
562         https://bugs.webkit.org/show_bug.cgi?id=152369
563
564         Reviewed by Timothy Hatcher.
565
566         * UserInterface/Views/Variables.css:
567         (:root):
568         Swap popover and tooltip z-index ordering.
569
570 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
571
572         REGRESSION: Web Inspector: console.dir(...) should force allowing object expansion
573         https://bugs.webkit.org/show_bug.cgi?id=152328
574
575         Reviewed by Timothy Hatcher.
576
577         * UserInterface/Views/ConsoleMessageView.js:
578         (WebInspector.ConsoleMessageView.prototype._formatParameter):
579         Propogate the force parameter down.
580
581 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
582
583         Web Inspector: Improve copy of console messages with multiple arguments - console.log(obj1, obj2)
584         https://bugs.webkit.org/show_bug.cgi?id=152330
585
586         Reviewed by Timothy Hatcher.
587
588         * UserInterface/Views/ConsoleMessageView.js:
589         (WebInspector.ConsoleMessageView.prototype.toClipboardString):
590         Copy the inner text of the extra arguments list as well, for
591         console messages with multiple objects. Rearrange the sections
592         that, if there is a stack trace it comes at the end after
593         multiple arguments. If there is no stack trace, include the
594         location info next to the top line, before multiple arguments.
595
596 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
597
598         Web Inspector: Improve copy of console message containing Array and Map output
599         https://bugs.webkit.org/show_bug.cgi?id=152329
600
601         Reviewed by Timothy Hatcher.
602
603         Introduce a real space in the content instead of style specific
604         margins so the existing copy/paste mechanism (innerText)
605         will have spaces between index/key and value.
606
607         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
608         (.object-tree-array-index .index-name): Deleted.
609         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
610         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
611         (WebInspector.ObjectTreeArrayIndexTreeElement):
612         * UserInterface/Views/ObjectTreeMapEntryTreeElement.css:
613         (.object-tree-array-index.object-tree-map-entry > .titles > .title > .index-name): Deleted.
614         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
615         (WebInspector.ObjectTreeMapEntryTreeElement.prototype.titleFragment):
616         (WebInspector.ObjectTreeMapEntryTreeElement):
617         * UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
618         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
619         (WebInspector.ObjectTreeSetIndexTreeElement):
620
621 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
622
623         Web Inspector: Typing object literal in the console causes a parse error
624         https://bugs.webkit.org/show_bug.cgi?id=141737
625
626         Reviewed by Timothy Hatcher.
627
628         Provide a convenience in console evaluations for JSON object like input.
629         If the console input starts with '{' and ends with '}' wrap the input
630         in parenthesis to force evaluation as an expression.
631
632         For example, input "{a:1}" would be convenience wrapped to "({a:1})"
633         and produce the expected object. This helps avoid the unusual treatment
634         of "{a:1}" as program containing a labeled statement, which is often
635         not what the user expects. And in more realistic cases, like "{a:1, b:2}",
636         produce a SyntaxError.
637
638         * UserInterface/Controllers/RuntimeManager.js:
639         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
640         Detect and convenience wrap the given expression.
641
642 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
643
644         Uncaught Exception View has undefined exception URL
645         https://bugs.webkit.org/show_bug.cgi?id=152327
646
647         Reviewed by Darin Adler.
648
649         * UserInterface/Debug/UncaughtExceptionReporter.js:
650         (handleUncaughtException):
651         Use ErrorEvent's filename property, not url which is undefined.
652
653 2015-12-16  Joseph Pecoraro  <pecoraro@apple.com>
654
655         Uncaught Exception: ReferenceError: Can't find variable: resolvedValue
656         https://bugs.webkit.org/show_bug.cgi?id=152326
657
658         Reviewed by Darin Adler.
659
660         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
661         (WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler):
662         This identifier is used later on, so assign it here.
663
664 2015-12-15  Joseph Pecoraro  <pecoraro@apple.com>
665
666         Web Inspector: Localize "global code" and "eval code" strings
667         https://bugs.webkit.org/show_bug.cgi?id=152313
668
669         Reviewed by Timothy Hatcher.
670
671         * Localizations/en.lproj/localizedStrings.js:
672         * UserInterface/Models/CallFrame.js:
673         (WebInspector.CallFrame.fromPayload):
674         Localize the strings given to use from the backend.
675
676 2015-12-15  Matt Baker  <mattbaker@apple.com>
677
678         Web Inspector: Convert Sidebar classes to use View
679         https://bugs.webkit.org/show_bug.cgi?id=152274
680
681         Reviewed by Brian Burg.
682
683         Updated Sidebar and SidebarPanel to inherit from View. Mostly mechanical changes.
684         Once the DetailsSection class family inherits from View (https://webkit.org/b/152269),
685         directly modifying a sidebar's 'contentView' element will rarely be necessary.
686
687         * UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
688         (WebInspector.ApplicationCacheDetailsSidebarPanel):
689
690         * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
691         (WebInspector.CSSStyleDetailsSidebarPanel):
692         (WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh):
693         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
694         Add/remove panels as subviews of the sidebar.
695         (WebInspector.CSSStyleDetailsSidebarPanel.prototype._filterDidChange):
696
697         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
698         (WebInspector.DOMNodeDetailsSidebarPanel):
699
700         * UserInterface/Views/DebuggerSidebarPanel.js:
701         (WebInspector.DebuggerSidebarPanel):
702         (WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
703
704         * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
705         (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildLayerInfoSection):
706         (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
707
708         * UserInterface/Views/NavigationSidebarPanel.js:
709         (WebInspector.NavigationSidebarPanel):
710         (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
711         (WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
712
713         * UserInterface/Views/ProbeDetailsSidebarPanel.js:
714         (WebInspector.ProbeDetailsSidebarPanel.prototype.set inspectedProbeSets):
715
716         * UserInterface/Views/ResourceDetailsSidebarPanel.js:
717         (WebInspector.ResourceDetailsSidebarPanel):
718         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
719         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
720         (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestDataSection):
721
722         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
723         (WebInspector.ScopeChainDetailsSidebarPanel):
724         (WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh.):
725         (WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):
726
727         * UserInterface/Views/SidebarPanel.js:
728         Inherit from View.
729         (WebInspector.SidebarPanel):
730         Replace the content element (the portion of the view excluding navigation
731         bars, filter bars, etc.) with a View object. A sidebar's content can be a mixture
732         of unwrapped DOM elements and View objects. For now, the content view's element
733         will be mutated directly, but once the DetailsSection class family inherits from
734         the View class the handling of details sections will be simplified.
735         (WebInspector.SidebarPanel.prototype.get contentView):
736         (WebInspector.SidebarPanel.prototype.shown):
737         (WebInspector.SidebarPanel.prototype.hidden):
738         (WebInspector.SidebarPanel.prototype.get contentElement): Deleted.
739         Replaced by WebInspector.SidebarPanel.prototype.get contentView.
740
741         * UserInterface/Views/StyleDetailsPanel.js:
742         Inherit from View.
743         (WebInspector.StyleDetailsPanel):
744         (WebInspector.StyleDetailsPanel.prototype.get element): Deleted.
745         Defer to View.element getter.
746
747         * UserInterface/Views/TimelineSidebarPanel.js:
748         (WebInspector.TimelineSidebarPanel.prototype._updateTimelineOverviewHeight):
749
750         * UserInterface/Views/VisualStyleDetailsPanel.js:
751         (WebInspector.VisualStyleDetailsPanel):
752         (WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
753
754 2015-12-14  Joseph Pecoraro  <pecoraro@apple.com>
755
756         Web Inspector: Stack traces in console incorrectly show "(anonymous function)" for global code
757         https://bugs.webkit.org/show_bug.cgi?id=152280
758
759         Reviewed by Brian Burg.
760
761         * UserInterface/Images/Program.svg: Added.
762         * UserInterface/Images/gtk/Program.svg: Added.
763         Copied from TimelineRecordScriptEvaluated.svg.
764
765         * UserInterface/Models/CallFrame.js:
766         (WebInspector.CallFrame):
767         (WebInspector.CallFrame.prototype.get programCode):
768         Add a new property to check if this call frame is in program code.
769
770         (WebInspector.CallFrame.fromPayload):
771         Detect different sources of program code (global, eval, module).
772
773         * UserInterface/Views/CallFrameIcons.css:
774         (.program-icon .icon):
775         * UserInterface/Views/CallFrameView.js:
776         (WebInspector.CallFrameView.iconClassNameForCallFrame):
777         Give program code the [S] global script icon like in profiles.
778
779 2015-12-14  Joseph Pecoraro  <pecoraro@apple.com>
780
781         Web Inspector: Copy message from console with a stack trace does not include source code locations
782         https://bugs.webkit.org/show_bug.cgi?id=152270
783
784         Reviewed by Timothy Hatcher.
785
786         * UserInterface/Views/ConsoleMessageView.js:
787         (WebInspector.ConsoleMessageView.prototype.toClipboardString):
788         When the the StackTrace was upgraded to a real collection of CallFrame
789         object's the CallFrame's got real SourceCodeLocation properties.
790
791 2015-12-13  Matt Baker  <mattbaker@apple.com>
792
793         Web Inspector: Make TimelineOverview's graph container a subview
794         https://bugs.webkit.org/show_bug.cgi?id=152235
795
796         Reviewed by Brian Burg.
797
798         * UserInterface/Views/TimelineOverview.js:
799         (WebInspector.TimelineOverview):
800         Create graph container subview.
801         (WebInspector.TimelineOverview.prototype._instrumentAdded):
802         Add overview to the graph container view.
803         (WebInspector.TimelineOverview.prototype._instrumentRemoved):
804         Remove overview from the graph container view.
805         (WebInspector.TimelineOverview.prototype.layout):
806         No longer necessary to manually lay out overview graphs.
807         (WebInspector.TimelineOverview.prototype._needsLayout): Deleted.
808         Removed dead code.
809
810 2015-12-12  Matt Baker  <mattbaker@apple.com>
811
812         Web Inspector: CodeMirrorTokenTrackingController handles symbols in class definitions incorrectly
813         https://bugs.webkit.org/show_bug.cgi?id=152218
814
815         Reviewed by Timothy Hatcher.
816
817         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
818         (WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
819         Stop checking for object literal shorthand property if an open parenthesis is found.
820         This check became necessary with the introduction of ES6 class syntax.
821
822         * UserInterface/Views/CodeMirrorAdditions.js:
823         Use localState when available, to prevent passing a state that doesn't define a tokenize property.
824
825 2015-12-12  Joseph Pecoraro  <pecoraro@apple.com>
826
827         REGRESSION (r191613): Web Inspector: Can't type spaces when editing DOM nodes
828         https://bugs.webkit.org/show_bug.cgi?id=152173
829
830         Reviewed by Timothy Hatcher.
831
832         * UserInterface/Views/TimelineSidebarPanel.js:
833         (WebInspector.TimelineSidebarPanel):
834         Disable the keyboard shortcuts when they are created. They will be
835         enabled when the panel is shown / hidden. It doesn't really make sense
836         that these are on the sidebar panel instead of the tab, but things
837         will be changing in Timelines soon anyways so just fix this now.
838
839 2015-12-12  Nikita Vasilyev  <nvasilyev@apple.com>
840
841         Web Inspector: "Selected Element" should use sans-serif font, not monospace
842         https://bugs.webkit.org/show_bug.cgi?id=152212
843
844         Reviewed by Timothy Hatcher.
845
846         * UserInterface/Views/ConsoleMessageView.css:
847         (.console-user-command.special-user-log > .console-message-text):
848
849 2015-12-11  Nikita Vasilyev  <nvasilyev@apple.com>
850
851         Web Inspector: When logging strings, detect stack traces and show them as StackTraceView
852         https://bugs.webkit.org/show_bug.cgi?id=149790
853
854         Reviewed by Timothy Hatcher.
855
856         * UserInterface/Models/StackTrace.js:
857         (WebInspector.StackTrace.isLikelyStackTrace): Added.
858
859         * UserInterface/Views/ConsoleMessageView.css:
860         (.console-message-extra-parameter .stack-trace):
861         Display stack trace view on the same line as a list bullet point from
862         console message extra parameter.
863
864         * UserInterface/Views/ConsoleMessageView.js:
865         (WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
866         Don't format with string substitutions for stack traces. E.g. there is
867         no need to replace %s with the next argument.
868
869         (WebInspector.ConsoleMessageView.prototype._isStackTrace): Added.
870         (WebInspector.ConsoleMessageView.prototype._formatParameterAsString):
871         Detect stack traces and format them appropriately.
872
873 2015-12-10  Nikita Vasilyev  <nvasilyev@apple.com>
874
875         Web Inspector: debugger dashboard's switching arrows are positioned too close to the dashboard border
876         https://bugs.webkit.org/show_bug.cgi?id=151867
877
878         Reviewed by Timothy Hatcher.
879
880         * UserInterface/Views/DashboardContainerView.css:
881         (.dashboard-container .advance-arrow):
882
883 2015-12-10  Matt Baker  <mattbaker@apple.com>
884
885         Web Inspector: debugger popover should have source location link when showing function source
886         https://bugs.webkit.org/show_bug.cgi?id=151866
887
888         Reviewed by Brian Burg.
889
890         Added source code location link to function popover header.
891
892         * UserInterface/Views/SourceCodeTextEditor.js:
893         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
894         Create source code location link from response payload.
895         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction):
896
897 2015-12-10  Nikita Vasilyev  <nvasilyev@apple.com>
898
899         Web Inspector: [Meta] Unify z-index values in Inspector's CSS
900         https://bugs.webkit.org/show_bug.cgi?id=151978
901
902         Introduce CSS variables for z-index due to recurring issues with incorrectly overlapping elements.
903
904         From now on, all z-index values >= 64 must be defined as variables.
905         Values below 64 must not.
906
907         Reviewed by Timothy Hatcher.
908
909         * UserInterface/Views/Variables.css:
910         (:root):
911         Introduce z-index variables.
912
913         * UserInterface/Debug/UncaughtExceptionReporter.css:
914         (.sheet-container):
915         * UserInterface/Views/BoxModelDetailsSectionRow.css:
916         (.details-section .row.box-model .editing):
917         * UserInterface/Views/CompletionSuggestionsView.css:
918         (.completion-suggestions):
919         * UserInterface/Views/DashboardContainerView.css:
920         (.dashboard-container .advance-arrow):
921         * UserInterface/Views/DataGrid.css:
922         (.data-grid .resizer):
923         * UserInterface/Views/DetailsSection.css:
924         (.details-section > .header):
925         (.details-section .details-section > .header):
926         * UserInterface/Views/FindBanner.css:
927         (.find-banner):
928         (.find-banner > button.segmented:active):
929         * UserInterface/Views/Main.css:
930         (#docked-resizer):
931         (.message-text-view):
932         (.bouncy-highlight):
933         * UserInterface/Views/Popover.css:
934         (.popover):
935         * UserInterface/Views/Resizer.css:
936         (.resizer):
937         (.glass-pane-for-drag):
938         * UserInterface/Views/TimelineOverview.css:
939         (.timeline-overview > .scroll-container):
940         * UserInterface/Views/VisualStyleSelectorSection.css:
941         (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider):
942
943 2015-12-09  Matt Baker  <mattbaker@apple.com>
944
945         Web Inspector: when a marked-dirty subview is attached to a parent View, dirtyDescendantsCount gets out of sync
946         https://bugs.webkit.org/show_bug.cgi?id=151876
947
948         Reviewed by Brian Burg.
949
950         * UserInterface/Base/Main.js:
951         Use root view singleton instead of creating it explicitly.
952
953         * UserInterface/Views/View.js:
954         (WebInspector.View):
955         (WebInspector.View.rootView):
956         Singleton root view access. Lazily create and return a view backed
957         by the document's body element.
958         (WebInspector.View.prototype.isDescendantOf):
959         (WebInspector.View.prototype.insertSubviewBefore):
960         (WebInspector.View.prototype.removeSubview):
961         (WebInspector.View.prototype.didMoveToWindow):
962         Notify the view when it becomes, or is no longer, descended from the root view.
963         (WebInspector.View.prototype.didMoveToParent):
964         Notify the view when it's added to, or removed from, a parent view.
965         (WebInspector.View._scheduleLayoutForView):
966         (WebInspector.View._cancelScheduledLayoutForView):
967         (WebInspector.View.prototype.makeRootView): Deleted.
968         No longer needed.
969         (WebInspector.View.prototype.didAttach): Deleted.
970         (WebInspector.View.prototype.didDetach): Deleted.
971         Replaced by didMoveToParent.
972
973 2015-12-09  Brian Burg  <bburg@apple.com>
974
975         Web Inspector: control whether to collect and dump protocol messages using a WebInspector.Setting
976         https://bugs.webkit.org/show_bug.cgi?id=151635
977
978         Reviewed by Timothy Hatcher.
979
980         When closing and reopening the inspector, the setting for whether
981         to dump protocol messages should be persisted. Otherwise, enabling
982         dumping from the debug-only UI will miss the initial flood of
983         messages that are processed when the Inspector loads initial data.
984
985         To support a persistent setting, and build some infrastructure for
986         more advanced uses of collected protocol messages, this patch adds
987         a new object to trace protocol events. It gets callbacks for each
988         and implements the console-dumping functionality previously baked in
989         to InspectorBackend.
990
991         In follow-up patches, other protocol tracers will be added to save
992         protocol data to disk, marshall it to a higher inspection level,
993         or provide more fine-grained control over what is logged.
994
995         This change moves Setting.js into the Base/ directory,
996         since it is used by Views, Models, and now Protocol classes.
997
998         * UserInterface/Base/Setting.js: Renamed from Source/WebInspectorUI/UserInterface/Models/Setting.js.
999         (WebInspector.Setting):
1000         (WebInspector.Setting.prototype.get name):
1001         (WebInspector.Setting.prototype.get value):
1002         (WebInspector.Setting.prototype.set value):
1003         * UserInterface/Main.html:
1004         * UserInterface/Protocol/InspectorBackend.js:
1005         (InspectorBackendClass):
1006         (InspectorBackendClass.prototype.set dumpInspectorProtocolMessages):
1007         (InspectorBackendClass.prototype.get dumpInspectorProtocolMessages):
1008
1009             We still want to support the legacy way to enable dumping:
1010             `InspectorBackend.dumpInspectorProtocolMessages = true`. This
1011             is because some tests always use it, and it's easier to set this
1012             flag in a custom Bootstrap.js file than to configure the Setting.
1013
1014         (InspectorBackendClass.prototype.set dumpInspectorTimeStats):
1015         (InspectorBackendClass.prototype.get dumpInspectorTimeStats):
1016
1017             We still want to support the legacy way to enable dumping:
1018             `InspectorBackend.dumpInspectorTimeStats = true`. This is
1019             because MessageDispatcher checks this flag for its logging.
1020
1021         (InspectorBackendClass.prototype.set activeTracer):
1022         (InspectorBackendClass.prototype.get activeTracer):
1023
1024             Set the active tracer, finalizing and removing any active tracer
1025             if one exists. If removing a custom tracer (setting to null), then
1026             re-sync activeTracer with the automatic tracing Setting.
1027
1028         (InspectorBackendClass.prototype.dispatch):
1029         (InspectorBackendClass.prototype._startOrStopAutomaticTracing):
1030
1031             Sync the Setting with activeTracer. If an custom tracer is active,
1032             don't replace it with the automatic logging tracer.
1033
1034         (InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
1035         (InspectorBackendClass.prototype._sendCommandToBackendExpectingPromise):
1036         (InspectorBackendClass.prototype._sendMessageToBackend):
1037         (InspectorBackendClass.prototype._dispatchResponse):
1038         (InspectorBackendClass.prototype._dispatchEvent):
1039         (InspectorBackendClass.prototype._flushPendingScripts):
1040         * UserInterface/Protocol/LoggingProtocolTracer.js: Added.
1041         (WebInspector.LoggingProtocolTracer):
1042         (WebInspector.LoggingProtocolTracer.prototype.set dumpMessagesToConsole):
1043         (WebInspector.LoggingProtocolTracer.prototype.get dumpMessagesToConsole):
1044         (WebInspector.LoggingProtocolTracer.prototype.set dumpTimingDataToConsole):
1045         (WebInspector.LoggingProtocolTracer.prototype.get dumpTimingDataToConsole):
1046         (WebInspector.LoggingProtocolTracer.prototype.logFrontendException):
1047         (WebInspector.LoggingProtocolTracer.prototype.logProtocolError):
1048         (WebInspector.LoggingProtocolTracer.prototype.logFrontendRequest):
1049         (WebInspector.LoggingProtocolTracer.prototype.logWillHandleResponse):
1050         (WebInspector.LoggingProtocolTracer.prototype.logDidHandleResponse):
1051         (WebInspector.LoggingProtocolTracer.prototype.logWillHandleEvent):
1052         (WebInspector.LoggingProtocolTracer.prototype.logDidHandleEvent):
1053         (WebInspector.LoggingProtocolTracer.prototype._processEntry):
1054         * UserInterface/Protocol/ProtocolTracer.js: Added.
1055         (WebInspector.ProtocolTracer.prototype.logStarted):
1056         (WebInspector.ProtocolTracer.prototype.logFrontendException):
1057         (WebInspector.ProtocolTracer.prototype.logProtocolError):
1058         (WebInspector.ProtocolTracer.prototype.logFrontendRequest):
1059         (WebInspector.ProtocolTracer.prototype.logWillHandleResponse):
1060         (WebInspector.ProtocolTracer.prototype.logDidHandleResponse):
1061         (WebInspector.ProtocolTracer.prototype.logWillHandleEvent):
1062         (WebInspector.ProtocolTracer.prototype.logDidHandleEvent):        (WebInspector.ProtocolTracer.prototype.logFinished):
1063         (WebInspector.ProtocolTracer):
1064         * UserInterface/Test.html:
1065
1066 2015-12-09  Brian Burg  <bburg@apple.com>
1067
1068         Web Inspector: zoom with Ctrl +/- doesn't work correctly when inspector is docked
1069         https://bugs.webkit.org/show_bug.cgi?id=152076
1070
1071         Reviewed by Timothy Hatcher.
1072
1073         When computing the new width or height of the inspector, take the zoom level into
1074         account. window.inner{Width,Height} are in document pixels, but we need to specify
1075         device pixels to InspectorFrontendHost.
1076
1077         * UserInterface/Base/Main.js:
1078
1079 2015-12-08  Joseph Pecoraro  <pecoraro@apple.com>
1080
1081         Web Inspector: Workaround arrow function issue in TimelineOverviewGraph.js
1082         https://bugs.webkit.org/show_bug.cgi?id=152031
1083
1084         Reviewed by Timothy Hatcher.
1085
1086         * UserInterface/Views/TimelineOverviewGraph.js:
1087         (WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
1088         Workaround an existing arrow function issue by moving off of arrow functions here.
1089
1090 2015-12-08  Matt Baker  <mattbaker@apple.com>
1091
1092         Web Inspector: Add a hidden property to TreeOutline
1093         https://bugs.webkit.org/show_bug.cgi?id=152014
1094
1095         Reviewed by Timothy Hatcher.
1096
1097         * UserInterface/Views/NavigationSidebarPanel.js:
1098         Removed static property for "hidden" CSS class. No longer used.
1099         (WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline):
1100         Fixed bug in order of visibleTreeOutlines add/remove.
1101         (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
1102
1103         * UserInterface/Views/TimelineSidebarPanel.js:
1104         (WebInspector.TimelineSidebarPanel):
1105         (WebInspector.TimelineSidebarPanel.prototype._changeViewMode):
1106
1107         * UserInterface/Views/TreeOutline.js:
1108         (WebInspector.TreeOutline):
1109         (WebInspector.TreeOutline.prototype.get hidden):
1110         (WebInspector.TreeOutline.prototype.set hidden):
1111         Added hidden property, set DOM element hidden attribute.
1112         (WebInspector.TreeElement.prototype.set hidden):
1113         Remove CSS class, set DOM element hidden attribute.
1114         (WebInspector.TreeElement.prototype._attach):
1115         (WebInspector.TreeElement.prototype.expand):
1116
1117 2015-12-08  Matt Baker  <mattbaker@apple.com>
1118
1119         Web Inspector: Global Breakpoints should always be visible
1120         https://bugs.webkit.org/show_bug.cgi?id=151066
1121
1122         Reviewed by Timothy Hatcher.
1123
1124         * UserInterface/Views/DebuggerSidebarPanel.js:
1125         (WebInspector.DebuggerSidebarPanel):
1126         Turn off filtering for Global Breakpoints elements.
1127
1128         * UserInterface/Views/NavigationSidebarPanel.js:
1129         (WebInspector.NavigationSidebarPanel.prototype.suppressFilteringOnTreeElements):
1130         Allow filtering to be turned off for specific tree elements.
1131         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
1132         Make element visible if filtering suppressed.
1133         (WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults):
1134         Visible elements with filtering disabled aren't considered when
1135         showing/hiding the empty content placeholder.
1136
1137 2015-12-07  Brian Burg  <bburg@apple.com>
1138
1139         Web Inspector: Uncaught Exception page should have better styles and handle more error cases
1140         https://bugs.webkit.org/show_bug.cgi?id=151923
1141
1142         Reviewed by Timothy Hatcher.
1143
1144         Restructure the Uncaught Exception reporting page to act more like
1145         a modal sheet. Distinguish between uncaught exceptions before and
1146         after the frontend is initially loaded. If the frontend is loaded,
1147         add a clickable link that dismisses the sheet and ignores the error.
1148         If the inspector finished loading, then only show at most one
1149         exception at a time, since subsequent interactions can cause spurious
1150         errors when the sheet is active.
1151
1152         Split existing code into multiple functions so it's easier to follow.
1153         Add miscellaneous guards against internal corruption and weird cases.
1154
1155         * UserInterface/Base/Main.js:
1156         (WebInspector.contentLoaded): Store the flag on the global object
1157         in case WebInspector becomes shadowed or otherwise unusable.
1158
1159         * UserInterface/Debug/UncaughtExceptionReporter.css: Renamed from Source/WebInspectorUI/UserInterface/Debug/CatchEarlyErrors.css.
1160         (div.sheet-container):
1161         (div.uncaught-exception-sheet):
1162         (div.uncaught-exception-sheet a):
1163         (div.uncaught-exception-sheet a:active):
1164         (div.uncaught-exception-sheet h2):
1165         (div.uncaught-exception-sheet h1 > img):
1166         (div.uncaught-exception-sheet h2 > img):
1167         (div.uncaught-exception-sheet dl):
1168         (div.uncaught-exception-sheet dt):
1169         (div.uncaught-exception-sheet dd):
1170         (div.uncaught-exception-sheet ul):
1171         (div.uncaught-exception-sheet li):
1172         * UserInterface/Debug/UncaughtExceptionReporter.js: Renamed from CatchEarlyErrors.js.
1173         (stopEventPropagation): Allow clicking whitelisted links on the sheet.
1174         (blockEventHandlers):
1175         (unblockEventHandlers):
1176         (handleUncaughtException):
1177         (dismissErrorSheet):
1178         (createErrorSheet.insertWordBreakCharacters):
1179         (createErrorSheet):
1180         (handleLinkClick):
1181         * UserInterface/Main.html:
1182         * UserInterface/Protocol/MessageDispatcher.js:
1183         (WebInspector.dispatchMessageFromBackend): Don't try to dispatch
1184         messages from the backend when showing the error sheet. They will
1185         probably fail, so suspend dispatching until the sheet is dismissed.
1186
1187 2015-12-06  Devin Rousso  <dcrousso+webkit@gmail.com>
1188
1189         Web Inspector: Regression (r192936) - changing selectors in the visual styles sidebar is broken
1190         https://bugs.webkit.org/show_bug.cgi?id=151924
1191
1192         Reviewed by Brian Burg.
1193
1194         * UserInterface/Views/VisualStyleSelectorSection.js:
1195         (WebInspector.VisualStyleSelectorSection):
1196         (WebInspector.VisualStyleSelectorSection.prototype._selectorChanged):
1197         Now uses an event listener instead of an "onselect" function.
1198
1199 2015-12-06  Matt Baker  <mattbaker@apple.com>
1200
1201         Web Inspector: Comparisons in setters should use the massaged value (" = x || 0/false/null/etc")
1202         https://bugs.webkit.org/show_bug.cgi?id=151910
1203
1204         Reviewed by Timothy Hatcher.
1205
1206         Updated setters that use default values to convert falsy inputs to the default value
1207         before compariing against the current value.
1208
1209         * UserInterface/Models/TimelineMarker.js:
1210         (WebInspector.TimelineMarker.prototype.set time):
1211         Assert new value is a number.
1212
1213         * UserInterface/Views/DataGrid.js:
1214         (WebInspector.DataGridNode.prototype.set hidden):
1215         (WebInspector.DataGridNode.prototype.set data):
1216         Assert new value is of type object. Use shallowEqual compare before setting value.
1217
1218         * UserInterface/Views/GeneralTreeElement.js:
1219         (WebInspector.GeneralTreeElement.prototype.set classNames):
1220         Use shallowEqual compare before setting value.
1221         (WebInspector.GeneralTreeElement.prototype.set mainTitle):
1222         (WebInspector.GeneralTreeElement.prototype.set subtitle):
1223         (WebInspector.GeneralTreeElement.prototype.set status):
1224         (WebInspector.GeneralTreeElement.prototype.set tooltipHandledSeparately):
1225
1226         * UserInterface/Views/TimelineOverview.js:
1227         (WebInspector.TimelineOverview.prototype.set startTime):
1228         (WebInspector.TimelineOverview.prototype.set currentTime):
1229         (WebInspector.TimelineOverview.prototype.set endTime):
1230         (WebInspector.TimelineOverview.prototype.set scrollStartTime):
1231         (WebInspector.TimelineOverview.prototype.set selectionStartTime):
1232         Check current ruler selectionStartTime before setting value.
1233
1234         * UserInterface/Views/TimelineOverviewGraph.js:
1235         (WebInspector.TimelineOverviewGraph.prototype.set zeroTime):
1236         (WebInspector.TimelineOverviewGraph.prototype.set startTime):
1237         (WebInspector.TimelineOverviewGraph.prototype.set endTime):
1238         (WebInspector.TimelineOverviewGraph.prototype.set currentTime):
1239
1240         * UserInterface/Views/TimelineRuler.js:
1241         (WebInspector.TimelineRuler):
1242         (WebInspector.TimelineRuler.prototype.set allowsClippedLabels):
1243         (WebInspector.TimelineRuler.prototype.set formatLabelCallback):
1244         (WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection):
1245         (WebInspector.TimelineRuler.prototype.set zeroTime):
1246         (WebInspector.TimelineRuler.prototype.set startTime):
1247         (WebInspector.TimelineRuler.prototype.set endTime):
1248         (WebInspector.TimelineRuler.prototype.set secondsPerPixel):
1249         (WebInspector.TimelineRuler.prototype.set selectionStartTime):
1250         (WebInspector.TimelineRuler.prototype.set selectionEndTime):
1251         (WebInspector.TimelineRuler.prototype.set duration): Deleted.
1252         The ruler duration and "pinned" state are controlled by setting an end
1253         time. Removed since it wasn't being used, and there shouldn't be two
1254         ways to the exact same thing.
1255
1256         * UserInterface/Views/TimelineView.js:
1257         (WebInspector.TimelineView.prototype.set zeroTime):
1258         (WebInspector.TimelineView.prototype.set startTime):
1259         (WebInspector.TimelineView.prototype.set endTime):
1260
1261 2015-12-04  Commit Queue  <commit-queue@webkit.org>
1262
1263         Unreviewed, rolling out r193486.
1264         https://bugs.webkit.org/show_bug.cgi?id=151904
1265
1266         Causes Infinite Recursion in Timeline Recording (Requested by
1267         JoePeck on #webkit).
1268
1269         Reverted changeset:
1270
1271         "Web Inspector: when a marked-dirty subview is attached to a
1272         parent View, dirtyDescendantsCount gets out of sync"
1273         https://bugs.webkit.org/show_bug.cgi?id=151876
1274         http://trac.webkit.org/changeset/193486
1275
1276 2015-12-04  Joseph Pecoraro  <pecoraro@apple.com>
1277
1278         Web Inspector: Uncaught Exception with Reload shortcut in JSContext Inspector
1279         https://bugs.webkit.org/show_bug.cgi?id=151896
1280
1281         Reviewed by Timothy Hatcher.
1282
1283         * UserInterface/Base/Main.js:
1284         (WebInspector.contentLoaded):
1285         Do not implicitly prevent default on these keyboard shortcuts
1286         so we can system beep if we do not do anything.
1287
1288         (WebInspector._reloadPage):
1289         (WebInspector._reloadPageIgnoringCache):
1290         Bail if there is no PageAgent without preventing default for
1291         a beep system beep. Prevent default if we did something.
1292
1293 2015-12-04  Matt Baker  <mattbaker@apple.com>
1294
1295         Web Inspector: when a marked-dirty subview is attached to a parent View, dirtyDescendantsCount gets out of sync
1296         https://bugs.webkit.org/show_bug.cgi?id=151876
1297
1298         Reviewed by Brian Burg.
1299
1300         * UserInterface/Views/NewTabContentView.js:
1301         (WebInspector.NewTabContentView.prototype._updateShownTabs):
1302         Removed workaround added in https://bugs.webkit.org/show_bug.cgi?id=151594.
1303
1304         * UserInterface/Views/View.js:
1305         (WebInspector.View._scheduleLayoutForView):
1306         Always perform a synchronous layout when a view that isn't descended from the
1307         root view schedules a layout.
1308
1309 2015-12-04  Brian Burg  <bburg@apple.com>
1310
1311         Web Inspector: support runtime registration of tab type associations
1312         https://bugs.webkit.org/show_bug.cgi?id=151594
1313
1314         Reviewed by Joseph Pecoraro.
1315
1316         We want to add special tabs that only exist in engineering builds
1317         for debugging purposes. Though the relevant models and views can be
1318         put in the Debug/ directory to exclude them from production builds,
1319         there's no way to register tabs conditionally at runtime; tabs are
1320         hardcoded.
1321
1322         This patch makes it possible to register new tab types at runtime.
1323         First, WebInspector keeps a map of known, registered tab classes.
1324         Details that were hardcoded before---whether to show in New Tab,
1325         whether a tab can be instantiated given the active domains, UI text,
1326         etc.---are now static methods on the base TabContentView or overidden
1327         in its subclasses. Lastly, a public method allows code in Bootstrap.js
1328         to register tabs at runtime. Doing so sends a notification so the
1329         NewTabContentView can show the newly available tab item.
1330
1331         * UserInterface/Base/Main.js:
1332         (WebInspector.contentLoaded):
1333         (WebInspector.isTabTypeAllowed):
1334         (WebInspector.knownTabClasses): Added, used by NewTabContentView.
1335         (WebInspector._createTabContentViewForType): Renamed from _tabContentViewForType.
1336         (WebInspector._rememberOpenTabs):
1337         (WebInspector._updateNewTabButtonState):
1338         (WebInspector._tryToRestorePendingTabs): Added.
1339
1340         Whenever a new tab is registered, try to restore pending tabs, since
1341         an extra tab won't be added initially when production tabs are added.
1342         But, it could have been saved in the Setting for opened tabs.
1343
1344         (WebInspector.showNewTabTab):
1345         (WebInspector.isNewTabWithTypeAllowed):
1346         (WebInspector.createNewTabWithType):
1347         (WebInspector._tabContentViewForType): Deleted.
1348         * UserInterface/Base/Object.js:
1349         * UserInterface/Views/ConsoleTabContentView.js:
1350         (WebInspector.ConsoleTabContentView):
1351         (WebInspector.ConsoleTabContentView.tabInfo): Added.
1352         * UserInterface/Views/DebuggerTabContentView.js:
1353         (WebInspector.DebuggerTabContentView):
1354         (WebInspector.DebuggerTabContentView.tabInfo): Added.
1355         * UserInterface/Views/ElementsTabContentView.js:
1356         (WebInspector.ElementsTabContentView):
1357         (WebInspector.ElementsTabContentView.tabInfo): Added.
1358         (WebInspector.ElementsTabContentView.isTabAllowed): Added.
1359         * UserInterface/Views/NetworkTabContentView.js:
1360         (WebInspector.NetworkTabContentView):
1361         (WebInspector.NetworkTabContentView.tabInfo): Added.
1362         (WebInspector.NetworkTabContentView.isTabAllowed): Added.
1363         * UserInterface/Views/NewTabContentView.js:
1364
1365         Keep a list of shown tab items, so we don't have to query the DOM
1366         to update enabled/disabled state. Put tree construction inside a
1367         layout() override and dirty the view whenever known tab types change.
1368
1369         (WebInspector.NewTabContentView):
1370         (WebInspector.NewTabContentView.tabInfo): Added.
1371         (WebInspector.NewTabContentView.isEphemeral): Added.
1372         (WebInspector.NewTabContentView.shouldSaveTab): Added.
1373         (WebInspector.NewTabContentView.prototype.layout): Added.
1374         (WebInspector.NewTabContentView.prototype._updateShownTabs): Added.
1375         (WebInspector.NewTabContentView.prototype._allowableTabTypes):
1376         (WebInspector.NewTabContentView.prototype._updateTabItems):
1377         (WebInspector.NewTabContentView.prototype.get tabItemElements): Deleted.
1378         * UserInterface/Views/ResourcesTabContentView.js:
1379         (WebInspector.ResourcesTabContentView):
1380         (WebInspector.ResourcesTabContentView.tabInfo): Added.
1381         * UserInterface/Views/SearchTabContentView.js:
1382         (WebInspector.SearchTabContentView):
1383         (WebInspector.SearchTabContentView.tabInfo): Added.
1384         (WebInspector.SearchTabContentView.isEphemeral): Added.
1385         * UserInterface/Views/SettingsTabContentView.js:
1386         (WebInspector.SettingsTabContentView.isTabAllowed): Added.
1387         (WebInspector.SettingsTabContentView.shouldSaveTab): Added.
1388         * UserInterface/Views/StorageTabContentView.js:
1389         (WebInspector.StorageTabContentView):
1390         (WebInspector.StorageTabContentView.tabInfo): Added.
1391         (WebInspector.StorageTabContentView.isTabAllowed): Added.
1392         * UserInterface/Views/TabBrowser.js:
1393         (WebInspector.TabBrowser.showTabForContentView):
1394
1395         Add a workaround for <https://webkit.org/b/151876>. This bug is
1396         revealed by the changes to NewTabContentView in this patch.
1397
1398         * UserInterface/Views/TabContentView.js:
1399         (WebInspector.TabContentView.isTabAllowed): Added.
1400         (WebInspector.TabContentView.isEphemeral): Added.
1401         (WebInspector.TabContentView.shouldSaveTab): Added.
1402         * UserInterface/Views/TimelineTabContentView.js:
1403         (WebInspector.TimelineTabContentView):
1404         (WebInspector.TimelineTabContentView.tabInfo): Added.
1405         (WebInspector.TimelineTabContentView.isTabAllowed): Added.
1406
1407 2015-12-04  Joseph Pecoraro  <pecoraro@apple.com>
1408
1409         Web Inspector: Remove untested and unused Worker inspection
1410         https://bugs.webkit.org/show_bug.cgi?id=151848
1411
1412         Reviewed by Brian Burg.
1413
1414         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
1415         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
1416         * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
1417         * Versions/Inspector-iOS-7.0.json:
1418         * Versions/Inspector-iOS-8.0.json:
1419         * Versions/Inspector-iOS-9.0.json:
1420         Since this was untested in older releases as well, remove
1421         the protocol interfaces for legacy versions.
1422
1423 2015-12-04  Joseph Pecoraro  <pecoraro@apple.com>
1424
1425         Web Inspector: Specifically Identify the Global Lexical Environment Scope
1426         https://bugs.webkit.org/show_bug.cgi?id=151828
1427
1428         Reviewed by Brian Burg.
1429
1430         * Localizations/en.lproj/localizedStrings.js:
1431         * UserInterface/Controllers/DebuggerManager.js:
1432         (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
1433         * UserInterface/Models/ScopeChainNode.js:
1434         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
1435         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
1436         Include a new scope type and give it a localized string.
1437
1438 2015-12-03  Anders Carlsson  <andersca@apple.com>
1439
1440         Remove Objective-C GC support
1441         https://bugs.webkit.org/show_bug.cgi?id=151819
1442         rdar://problem/23746991
1443
1444         Reviewed by Dan Bernstein.
1445
1446         * Configurations/Base.xcconfig:
1447
1448 2015-12-03  Matt Baker  <mattbaker@apple.com>
1449
1450         Uncaught Exception in Web Inspector: TypeError: null is not an object (evaluating 'dataGridNode.element.classList')
1451         https://bugs.webkit.org/show_bug.cgi?id=151790
1452
1453         Reviewed by Timothy Hatcher.
1454
1455         * UserInterface/Views/DataGrid.js:
1456         (WebInspector.DataGridNode):
1457         (WebInspector.DataGridNode.prototype.get hidden):
1458         (WebInspector.DataGridNode.prototype.set hidden):
1459         Make hidden a property, so it can be set before the grid node's DOM element exists.
1460         (WebInspector.DataGridNode.prototype.get selectable):
1461         (WebInspector.DataGridNode.prototype.get element):
1462         Add hidden style, if needed, when element is created.
1463
1464         * UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
1465         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementVisibilityDidChange):
1466         (WebInspector.TreeOutlineDataGridSynchronizer):
1467         Don't access the grid node's element directly, since it may not exist yet.
1468
1469 2015-12-02  Joseph Pecoraro  <pecoraro@apple.com>
1470
1471         Web Inspector: Handle YieldExpressions in the ScriptSyntaxTree
1472         https://bugs.webkit.org/show_bug.cgi?id=151730
1473
1474         Reviewed by Brian Burg.
1475
1476         * UserInterface/Models/NativeFunctionParameters.js:
1477         Add the Generator API.
1478
1479         * UserInterface/Models/ScriptSyntaxTree.js:
1480         (WebInspector.ScriptSyntaxTree.prototype._recurse):
1481         (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
1482         Handle YieldExpressions.
1483
1484 2015-12-01  Matt Baker  <mattbaker@apple.com>
1485
1486         Web Inspector: TreeOutline should just dispatch events via WebInspector.Object
1487         https://bugs.webkit.org/show_bug.cgi?id=148067
1488
1489         Reviewed by Timothy Hatcher.
1490
1491         TreeOutline now dispatches most events via WebInspector.Object. The onselect and
1492         ondeselect callbacks are replaced by a SelectionDidChange event, which includes
1493         both the selected and deselected elements in its event data. The onexpand and oncollapse
1494         callbacks are replaced by an ElementDisclosureDidChange event. This is consistent with the
1495         behavior of onhidden, which had no corresponding onvisible callback.
1496
1497         Alas, TimelineView and TreeOutlineDataGridSynchronizer depended on the order in which
1498         TreeOutline.onselect callbacks were chained together. The synchronizer added its
1499         callback after the timeline view, which ensured that the tree and grid were in sync
1500         before the view handled onselect and dispatched a SelectionPathComponentsDidChange.
1501         The change notification causes the view's path components to be read, and timeline
1502         views need the grid selection to be in a valid state to build path components.
1503
1504         This is addressed by having timeline views dispatch SelectionPathComponentsDidChange
1505         events when the grid selection changes, instead of the tree selection. The change
1506         required that the synchronizer no longer suppress notifications when selecting grid nodes.
1507
1508         * UserInterface/Views/DebuggerSidebarPanel.js:
1509         (WebInspector.DebuggerSidebarPanel):
1510         (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
1511         (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
1512
1513         * UserInterface/Views/NavigationSidebarPanel.js:
1514         (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
1515         (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
1516
1517         * UserInterface/Views/NetworkGridContentView.js:
1518         (WebInspector.NetworkGridContentView):
1519         (WebInspector.NetworkGridContentView.prototype._treeSelectionDidChange):
1520
1521         * UserInterface/Views/ResourceSidebarPanel.js:
1522         (WebInspector.ResourceSidebarPanel):
1523         (WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):
1524         (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected): Deleted.
1525
1526         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
1527         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
1528         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection):
1529         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._treeElementAdded):
1530         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._treeElementDisclosureDidChange):
1531         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeExpandHandler): Deleted.
1532         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeCollapseHandler): Deleted.
1533
1534         * UserInterface/Views/SearchSidebarPanel.js:
1535         (WebInspector.SearchSidebarPanel):
1536         (WebInspector.SearchSidebarPanel.prototype._treeSelectionDidChange):
1537         (WebInspector.SearchSidebarPanel.prototype._treeElementSelected): Deleted.
1538
1539         * UserInterface/Views/StorageSidebarPanel.js:
1540         (WebInspector.StorageSidebarPanel):
1541         (WebInspector.StorageSidebarPanel._treeSelectionDidChange):
1542
1543         * UserInterface/Views/TimelineDataGrid.js:
1544         (WebInspector.TimelineDataGrid.prototype._createPopoverContent):
1545         (WebInspector.TimelineDataGrid.prototype._popoverCallStackTreeSelectionDidChange):
1546         (WebInspector.TimelineDataGrid):
1547
1548         * UserInterface/Views/TimelineSidebarPanel.js:
1549         (WebInspector.TimelineSidebarPanel):
1550         (WebInspector.TimelineSidebarPanel.prototype._recordingsTreeSelectionDidChange):
1551         (WebInspector.TimelineSidebarPanel.prototype._timelinesTreeSelectionDidChange):
1552         (WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected): Deleted.
1553
1554         * UserInterface/Views/TimelineView.js:
1555         (WebInspector.TimelineView):
1556         (WebInspector.TimelineView.prototype._treeSelectionDidChange):
1557         (WebInspector.TimelineView.prototype.treeElementSelected):
1558         Don't dispatch SelectionPathComponentsDidChange. Timeline views already do this
1559         in response to grid selection events.
1560
1561         * UserInterface/Views/TreeOutline.js:
1562         (WebInspector.TreeOutline.prototype.appendChild):
1563         (WebInspector.TreeOutline.prototype.insertChild):
1564         (WebInspector.TreeOutline.prototype.removeChildAtIndex):
1565         (WebInspector.TreeOutline.prototype.removeChildren):
1566         (WebInspector.TreeOutline.prototype.removeChildrenRecursive):
1567         (WebInspector.TreeOutline.prototype._treeElementDidChange):
1568         (WebInspector.TreeElement.prototype.set hidden):
1569         (WebInspector.TreeElement.prototype.collapse):
1570         (WebInspector.TreeElement.prototype.expand):
1571         (WebInspector.TreeElement.prototype.select):
1572         (WebInspector.TreeElement.prototype.deselect):
1573         (WebInspector.TreeElement.prototype.get childrenListElement): Deleted.
1574         Removed dead code.
1575
1576         * UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
1577         (WebInspector.TreeOutlineDataGridSynchronizer):
1578         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeSelectionDidChange):
1579         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementAdded):
1580         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementRemoved):
1581         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementDisclosureDidChange):
1582         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementVisibilityDidChange):
1583         (WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onadd): Deleted.
1584         (WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onremove): Deleted.
1585         (WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onexpand): Deleted.
1586         (WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.oncollapse): Deleted.
1587         (WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onhidden): Deleted.
1588         (WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onselect): Deleted.
1589         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementSelected): Deleted.
1590         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementExpanded): Deleted.
1591         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementCollapsed): Deleted.
1592         (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementHiddenChanged): Deleted.
1593
1594         * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
1595         (WebInspector.VisualStyleCommaSeparatedKeywordEditor):
1596         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeSelectionDidChange):
1597         (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeElementSelected): Deleted.
1598
1599 2015-12-01  Joseph Pecoraro  <pecoraro@apple.com>
1600
1601         Web Inspector: Timestamp in Tooltip of Event Markers is incorrect
1602         https://bugs.webkit.org/show_bug.cgi?id=151722
1603
1604         Reviewed by Timothy Hatcher.
1605
1606         * UserInterface/Views/TimelineRuler.js:
1607         (WebInspector.TimelineRuler.prototype.addMarker):
1608         Convert the marker's time, to be relative to the start of the recording.
1609
1610 2015-12-01  Joseph Pecoraro  <pecoraro@apple.com>
1611
1612         Unreviewed common typo fix "occurance" => "occurrence".
1613
1614         * Scripts/combine-resources.pl:
1615         (concatenateFiles):
1616
1617 2015-12-01  Joseph Pecoraro  <pecoraro@apple.com>
1618
1619         Web Inspector: Spacebar to toggle Timeline recording doesn't work in Timeline tab after reloading the page
1620         https://bugs.webkit.org/show_bug.cgi?id=151530
1621
1622         Reviewed by Timothy Hatcher.
1623
1624         If reloading the page caused the console to clear, that was triggering
1625         the console prompt to be focused. When the console prompt is focused,
1626         keyboard input like Spacebar, was just inputing characters instead of
1627         triggering the keyboard shortcut that was expected.
1628
1629         This also means that console.clear() in the inspected page would cause
1630         the inspector to focus the console. That is unexpected as well.
1631
1632         Focusing the console prompt whenever the console log is cleared
1633         is not ideal. If we do want to focus the prompt the caller should
1634         make that determination, not clear.
1635
1636         * UserInterface/Controllers/JavaScriptLogViewController.js:
1637         (WebInspector.JavaScriptLogViewController.prototype.clear):
1638
1639 2015-12-01  Joseph Pecoraro  <pecoraro@apple.com>
1640
1641         Web Inspector: Update Timeline UI based on the Instruments in the Active Recording
1642         https://bugs.webkit.org/show_bug.cgi?id=151374
1643
1644         Reviewed by Brian Burg.
1645
1646         * UserInterface/Views/TimelineRecordingContentView.js:
1647         (WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
1648         Modernize as I was in this code while looking into this patch.
1649
1650         * UserInterface/Views/TimelineSidebarPanel.css:
1651         (.sidebar > .panel.navigation.timeline > .title-bar.timeline-events): Deleted.
1652         (.sidebar > .panel.navigation.timeline > .timelines-content): Deleted.
1653         These defaults are no longer necessary, the UI overrides them anyways.
1654
1655         * UserInterface/Views/TimelineSidebarPanel.js:
1656         (WebInspector.TimelineSidebarPanel):
1657         Include both the basic and rendering frames toolbars. They will be
1658         mutually exclusive based on if the FPSIntrument is available.
1659
1660         (WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
1661         (WebInspector.TimelineSidebarPanel.prototype._clearInstruments):
1662         When loading a new Recording clear the UI.
1663
1664         (WebInspector.TimelineSidebarPanel.prototype._instrumentAdded):
1665         (WebInspector.TimelineSidebarPanel.prototype._instrumentRemoved):
1666         (WebInspector.TimelineSidebarPanel.prototype._addedFPSInstrument):
1667         (WebInspector.TimelineSidebarPanel.prototype._removedFPSInstrument):
1668         Handle toggling the toolbars when the FPS instrument is added/removed.
1669
1670         (WebInspector.TimelineSidebarPanel.prototype._timelineCountChanged):
1671         (WebInspector.TimelineSidebarPanel.prototype._updateTimelineOverviewHeight):
1672         (WebInspector.TimelineSidebarPanel.prototype._changeViewMode):
1673         Properly update the sidebar's understanding of the TimelineOverview size.
1674
1675 2015-12-01  Joseph Pecoraro  <pecoraro@apple.com>
1676
1677         Web Inspector: Initial support for variable timelines
1678         https://bugs.webkit.org/show_bug.cgi?id=151372
1679
1680         Reviewed by Brian Burg.
1681
1682         * UserInterface/Controllers/TimelineManager.js:
1683         (WebInspector.TimelineManager.defaultInstruments):
1684         (WebInspector.TimelineManager.prototype._loadNewRecording):
1685         Keep the status quo which is the same set of instruments for each recording.
1686
1687         (WebInspector.TimelineManager.prototype.startCapturing):
1688         (WebInspector.TimelineManager.prototype.stopCapturing):
1689         Push responsibility of capturing to the Recording, which has a specific set
1690         of instruments that know what they need to turn on an off from the backend.
1691         
1692         * UserInterface/Main.html:
1693         * UserInterface/Models/Instrument.js: Added.
1694         (WebInspector.Instrument):
1695         (WebInspector.Instrument.startLegacyTimelineAgent):
1696         (WebInspector.Instrument.stopLegacyTimelineAgent):
1697         (WebInspector.Instrument.prototype.get timelineRecordType):
1698         (WebInspector.Instrument.prototype.startInstrumentation):
1699         (WebInspector.Instrument.prototype.stopInstrumentation):
1700         New class representing something that can be turned on and off
1701         from the backend and produces a set of Timeline record types.
1702         Currently instruments are 1-to-1 to a Timeline type.
1703
1704         * UserInterface/Models/LayoutInstrument.js: Added.
1705         (WebInspector.LayoutInstrument.prototype.get timelineRecordType):
1706         (WebInspector.LayoutInstrument):
1707         * UserInterface/Models/NetworkInstrument.js: Added.
1708         (WebInspector.NetworkInstrument.prototype.get timelineRecordType):
1709         (WebInspector.NetworkInstrument.prototype.startInstrumentation):
1710         (WebInspector.NetworkInstrument.prototype.stopInstrumentation):
1711         (WebInspector.NetworkInstrument):
1712         * UserInterface/Models/ScriptInstrument.js: Added.
1713         (WebInspector.ScriptInstrument.prototype.get timelineRecordType):
1714         (WebInspector.ScriptInstrument):
1715         The default set of instruments. Currently they all enable the TimelineAgent,
1716         so they share code to enable/disable in the base class to avoid duplication.
1717
1718         * UserInterface/Models/FPSInstrument.js: Added.
1719         (WebInspector.FPSInstrument):
1720         (WebInspector.FPSInstrument.supported):
1721         (WebInspector.FPSInstrument.prototype.get timelineRecordType):
1722         Provide a "supported" static method and simplify other code that
1723         checks whether or not RenderingFrames is available or not.
1724
1725
1726         * UserInterface/Models/Timeline.js:
1727         (WebInspector.Timeline.prototype.get displayName): Deleted.
1728         (WebInspector.Timeline.prototype.get iconClassName): Deleted.
1729         Move these to a View class, as this is primarily View logic.
1730
1731         * UserInterface/Models/TimelineRecording.js:
1732         (WebInspector.TimelineRecording):
1733         (WebInspector.TimelineRecording.prototype.get instruments):
1734         (WebInspector.TimelineRecording.prototype.start):
1735         (WebInspector.TimelineRecording.prototype.stop):
1736         (WebInspector.TimelineRecording.prototype.timelineForInstrument):
1737         (WebInspector.TimelineRecording.prototype.addInstrument):
1738         (WebInspector.TimelineRecording.prototype.removeInstrument):
1739         (WebInspector.TimelineRecording.prototype.addEventMarker):
1740         (WebInspector.TimelineRecording.prototype.addTimeline): Deleted.
1741         (WebInspector.TimelineRecording.prototype.removeTimeline): Deleted.
1742         A recording now has a set of Instruments and its own start/stop
1743         which starts/stops its set of Instruments! Treat Instruments as
1744         the variable property of a Recording instead of Timelines.
1745     
1746         * UserInterface/Views/TimelineOverview.js:
1747         (WebInspector.TimelineOverview):
1748         (WebInspector.TimelineOverview.prototype._instrumentAdded):
1749         (WebInspector.TimelineOverview.prototype._instrumentRemoved):
1750         (WebInspector.TimelineOverview.prototype._timelineAdded): Deleted.
1751         (WebInspector.TimelineOverview.prototype._timelineRemoved): Deleted.
1752         * UserInterface/Views/TimelineRecordingContentView.js:
1753         (WebInspector.TimelineRecordingContentView):
1754         (WebInspector.TimelineRecordingContentView.prototype._instrumentAdded):
1755         (WebInspector.TimelineRecordingContentView.prototype._instrumentRemoved):
1756         (WebInspector.TimelineRecordingContentView.prototype._timelineAdded): Deleted.
1757         (WebInspector.TimelineRecordingContentView.prototype._timelineRemoved): Deleted.
1758         * UserInterface/Views/TimelineSidebarPanel.js:
1759         (WebInspector.TimelineSidebarPanel):
1760         (WebInspector.TimelineSidebarPanel.displayNameForTimeline):
1761         (WebInspector.TimelineSidebarPanel.iconClassNameForTimeline):
1762         (WebInspector.TimelineSidebarPanel.prototype.updateFrameSelection):
1763         (WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie):
1764         (WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
1765         (WebInspector.TimelineSidebarPanel.prototype._instrumentAdded):
1766         (WebInspector.TimelineSidebarPanel.prototype._instrumentRemoved):
1767         (WebInspector.TimelineSidebarPanel.prototype._changeViewMode):
1768         (WebInspector.TimelineSidebarPanel.prototype._timelineAdded): Deleted.
1769         (WebInspector.TimelineSidebarPanel.prototype._timelineRemoved): Deleted.
1770         Update all TimelineAdded/TimelineRemoved clients to instead check
1771         InstrumentAdded/InstrumentRemoved. Immediately convert from an Instrument
1772         to a Timeline to keep the patch simple.
1773
1774 2015-12-01  Joseph Pecoraro  <pecoraro@apple.com>
1775
1776         Web Inspector: Broken Inspector when resources are minified
1777         https://bugs.webkit.org/show_bug.cgi?id=151711
1778
1779         Reviewed by Timothy Hatcher.
1780
1781         * Scripts/combine-resources.pl:
1782         (concatenateFiles):
1783         Provide a way to just strip resources matches a pattern.
1784
1785         * Scripts/copy-user-interface-resources.pl:
1786         Strip "Debug/" resources before combining / minifying others.
1787
1788         * UserInterface/Views/View.js:
1789         (WebInspector.View.prototype.makeRootView):
1790         (WebInspector.View.prototype.didDetach):
1791         Address warnings from the console.assert stripping phase
1792         for console.assert statements lacking a trailing semicolon.
1793
1794 2015-11-30  Brian Burg  <bburg@apple.com>
1795
1796         Web Inspector: show something useful when the inspector frontend fails to load
1797         https://bugs.webkit.org/show_bug.cgi?id=151643
1798
1799         Reviewed by Timothy Hatcher.
1800
1801         When a parse error or other early error happens before the inspector
1802         is fully loaded, we can't use the second-level inspector to tell what's
1803         going on. It would be better to catch any early errors and list them.
1804
1805         This patch adds an error page that shows the early errors that happened
1806         during loading. It provides a list of errors, a link to reload the
1807         inspector, and a link to submit a pre-filled bug report about the error.
1808
1809         For now, this page only shows up in engineering builds because it's
1810         located in the Debug/ directory. We can move it later when it works
1811         better in all cases. Follow-up patches can address smaller issues,
1812         such as the transparent title bar and broken text selection.
1813
1814          * UserInterface/Debug/CatchEarlyErrors.css: Added.
1815          * UserInterface/Debug/CatchEarlyErrors.js: Added.
1816          * UserInterface/Main.html:
1817          * UserInterface/Main.js: Abort setting up the UI if something happened.
1818
1819 2015-11-30  Brian Burg  <bburg@apple.com>
1820
1821         Web Inspector: delete-by-word and similar shortcuts should add text to the WebCore kill ring
1822         https://bugs.webkit.org/show_bug.cgi?id=151312
1823
1824         Reviewed by Darin Adler.
1825
1826         Add support for other kill ring-eligible keybindinsg, such as
1827         deleting by word, group, or line forwards and backwards.
1828
1829         * UserInterface/Controllers/CodeMirrorTextKillController.js:
1830         (WebInspector.CodeMirrorTextKillController):
1831         (WebInspector.CodeMirrorTextKillController.prototype._handleTextKillCommand): Renamed from _handleKillLine.
1832
1833             Parameterize the function so it can handle any keybinding and
1834             command. Take a kill ring insertion mode argument, too.
1835
1836         (WebInspector.CodeMirrorTextKillController.prototype._handleTextChange):
1837
1838             Add some special casing for changes received from Delete Line
1839             (Cmd-D) so the right text is added to the kill ring. Thread the
1840             kill ring insertion mode to the frontend host call.
1841
1842         (WebInspector.CodeMirrorTextKillController.prototype._handleKillLine): Deleted.
1843
1844 2015-11-29  Brian Burg  <bburg@apple.com>
1845
1846         Web Inspector: Add context menu item to Reload the Inspector
1847         https://bugs.webkit.org/show_bug.cgi?id=141742
1848
1849         Reviewed by Timothy Hatcher.
1850
1851         Add a global context menu and global shortcut (Cmd-Opt-Shift-R) to
1852         reload the Web Inspector frontend without closing the browser.
1853
1854         This should make it possible to more quickly fix typos, small nits,
1855         etc. without having to relaunch. It might also make state
1856         restoration bugs more visible in engineering builds, since there
1857         is hardly any delay between seeing the old and reloaded frontends.
1858
1859         Note that this functionality reloads scripts from the configuration's
1860         build directory, so you still need to "build" WebInspectorUI to ensure
1861         that any changed files are properly minified and staged.
1862
1863         * UserInterface/Base/Main.js:
1864         (WebInspector.unlocalizedString):
1865
1866             Added. Make it obvious when strings are intentionally not localized.
1867
1868         (WebInspector._contextMenuRequested):
1869
1870             If the "Show Debug UI" setting is available and true, add
1871             a global "Reload Web Inspector" menu item to every context
1872             menu. Otherwise, don't eagerly create a context menu.
1873         * UserInterface/Debug/Bootstrap.js: Add Cmd-Opt-Shift-R shortcut.
1874
1875 2015-11-29  Brian Burg  <bburg@apple.com>
1876
1877         Web Inspector: allow multiple UI components to add menu items upon getting a "contextmenu" event
1878         https://bugs.webkit.org/show_bug.cgi?id=151629
1879
1880         Reviewed by Timothy Hatcher.
1881
1882         The existing Context Menu system assumes that only one UI component
1883         will need to provide context menu items. But in some scenarios, there
1884         are multiple UI components that could provide relevant menu items. For
1885         example, right-clicking on an DOM element in the console should show
1886         menu items relevant to 1) the DOM element, 2) the console in general,
1887         and 3) global menu items. Existing code shows menu items provided by
1888         the first object that handles the event and calls ContextMenu.show().
1889
1890         This patch changes behavior so that a context menu can be built up
1891         by multiple 'contextmenu' event handlers. A ContextMenu instance is
1892         hidden on the 'contextmenu' event object; client code calls a
1893         factory method that digs out this existing context menu or creates a
1894         new one as needed. To actually show the context menu through the
1895         InspectorFrontendHost methods, the top-level app controller adds a
1896         bubbling listener for 'contextmenu' and shows the event's context
1897         menu if one has been created.
1898
1899         Along the way, do some cleanup. Do s/var/let/, arrowize some functions,
1900         use Array.{map,some}, and simplify some other code as a result.
1901
1902         No new tests yet, since we can't trigger context menu easily from
1903         an inspector test. All affected context menus were manually verified.
1904
1905         * UserInterface/Base/Main.js:
1906         (WebInspector.contentLoaded):
1907         * UserInterface/Controllers/BreakpointPopoverController.js:
1908         (WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems):
1909         (WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.editBreakpoint): Deleted.
1910         (WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.removeBreakpoint): Deleted.
1911         (WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.toggleBreakpoint): Deleted.
1912         (WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.toggleAutoContinue): Deleted.
1913         (WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.revealOriginalSourceCodeLocation): Deleted.
1914         * UserInterface/Views/BreakpointTreeElement.js:
1915         (WebInspector.BreakpointTreeElement.prototype.oncontextmenu):
1916         * UserInterface/Views/CSSStyleDeclarationSection.js:
1917         * UserInterface/Views/ContextMenu.js:
1918         (WebInspector.ContextMenuItem.prototype._buildDescriptor):
1919         (WebInspector.ContextMenuItem):
1920         (WebInspector.ContextSubMenuItem.prototype.appendItem):
1921         (WebInspector.ContextSubMenuItem.prototype.appendSubMenuItem):
1922         (WebInspector.ContextSubMenuItem.prototype.appendCheckboxItem):
1923         (WebInspector.ContextSubMenuItem.prototype._pushItem):
1924         (WebInspector.ContextSubMenuItem.prototype._buildDescriptor):
1925         (WebInspector.ContextSubMenuItem):
1926         (WebInspector.ContextMenu.createFromEvent):
1927         (WebInspector.ContextMenu.prototype.show):
1928         (WebInspector.ContextMenu.prototype.handleEvent):
1929         (WebInspector.ContextMenu.prototype._buildDescriptor):
1930         * UserInterface/Views/DOMTreeOutline.js:
1931         (WebInspector.DOMTreeOutline.prototype._contextMenuEventFired):
1932         (WebInspector.DOMTreeOutline.prototype._populateContextMenu.logElement):
1933         (WebInspector.DOMTreeOutline.prototype._populateContextMenu):
1934         * UserInterface/Views/DataGrid.js:
1935         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
1936         * UserInterface/Views/DebuggerSidebarPanel.js:
1937         (WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement):
1938         (WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement.removeAllResourceBreakpoints): Deleted.
1939         (WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement.toggleAllResourceBreakpoints): Deleted.
1940         * UserInterface/Views/LogContentView.js:
1941         (WebInspector.LogContentView.prototype._handleContextMenuEvent):
1942         * UserInterface/Views/ObjectPreviewView.js:
1943         (WebInspector.ObjectPreviewView.prototype._contextMenuHandler):
1944         (WebInspector.ObjectPreviewView):
1945         * UserInterface/Views/ObjectTreeBaseTreeElement.js:
1946         (WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler):
1947         (WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
1948         (WebInspector.ObjectTreeBaseTreeElement):
1949         * UserInterface/Views/SourceCodeTextEditor.js:
1950         (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
1951         (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.continueToLocation): Deleted.
1952         (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.addBreakpoint): Deleted.
1953         (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.revealInSidebar): Deleted.
1954         (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.removeBreakpoints): Deleted.
1955         (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.toggleBreakpoints): Deleted.
1956         * UserInterface/Views/TabBarItem.js:
1957         (WebInspector.TabBarItem.prototype._handleContextMenuEvent):
1958         (WebInspector.TabBarItem):
1959         (WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeTab): Deleted.
1960         (WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeOtherTabs): Deleted.
1961         * UserInterface/Views/TimelineSidebarPanel.js:
1962         (WebInspector.TimelineSidebarPanel.prototype._contextMenuNavigationBarOrStatusBar):
1963         (WebInspector.TimelineSidebarPanel.prototype._contextMenuNavigationBarOrStatusBar.toggleReplayInterface): Deleted.
1964         * UserInterface/Views/Toolbar.js:
1965         (WebInspector.Toolbar.prototype._handleContextMenuEvent):
1966         * UserInterface/Views/VisualStyleSelectorTreeItem.js:
1967         (WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
1968
1969 2015-11-28  Devin Rousso  <dcrousso+webkit@gmail.com>
1970
1971         Web Inspector: Styles sidebar placeholder is misaligned
1972         https://bugs.webkit.org/show_bug.cgi?id=151638
1973
1974         Reviewed by Brian Burg.
1975
1976         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1977         (.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
1978
1979 2015-11-28  Devin Rousso  <dcrousso+webkit@gmail.com>
1980
1981         Web Inspector: REGRESSION: "Duplicate Selector" context menu item doesn't work
1982         https://bugs.webkit.org/show_bug.cgi?id=151628
1983
1984         Reviewed by Brian Burg.
1985
1986         Merged the two "add rule" functions inside DOMNodeStyles to create a
1987         new rule with the given selector and use the generated best selector
1988         for that node otherwise. This also preserves all fallbacks across all
1989         functions for creating new CSS rules.
1990
1991         * UserInterface/Models/DOMNodeStyles.js:
1992         (WebInspector.DOMNodeStyles.prototype.addEmptyRule): Deleted.
1993         (WebInspector.DOMNodeStyles.prototype.addRuleWithSelector): Deleted.
1994         (WebInspector.DOMNodeStyles.prototype.addRule):
1995         Creates a new CSS rule using either the provided selector or the best
1996         selector for the current node.
1997
1998         * UserInterface/Views/CSSStyleDeclarationSection.js:
1999         (WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent):
2000         * UserInterface/Views/RulesStyleDetailsPanel.js:
2001         (WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):
2002         * UserInterface/Views/VisualStyleSelectorSection.js:
2003         (WebInspector.VisualStyleSelectorSection.prototype._addNewRule):
2004
2005 2015-11-24  Brian Burg  <bburg@apple.com>
2006
2007         Web Inspector: save Inspector's breakpoints to localStorage whenever they are modified
2008         https://bugs.webkit.org/show_bug.cgi?id=151581
2009
2010         Reviewed by Timothy Hatcher.
2011
2012         Serialize all breakpoints to the "breakpoints" Setting in local storage
2013         whenever any breakpoint model object is added, removed, or modified.
2014
2015         Remove the old listener that attempted to save breakpoints on the
2016         pagehide event. It did not fire in important scenarios like exiting
2017         the browser via Cmd-Q or killing the process via Ctrl-C / SIGKILL.
2018
2019         This is not expected to be a performance problem because most people
2020         do not keep thousands of breakpoints active, and breakpoints are not
2021         set very often. If it's a problem, we can mitigate it with coalescing.
2022
2023         * UserInterface/Controllers/DebuggerManager.js:
2024         (WebInspector.DebuggerManager.prototype.addBreakpoint):
2025         (WebInspector.DebuggerManager.prototype.removeBreakpoint):
2026         (WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange):
2027         (WebInspector.DebuggerManager.prototype._saveBreakpoints):
2028         (WebInspector.DebuggerManager.prototype._inspectorClosing): Deleted.
2029
2030 2015-11-24  Brian Burg  <bburg@apple.com>
2031
2032         Web Inspector: Cmd-1 to Cmd-9 shortcuts should select tabs by ordinal
2033         https://bugs.webkit.org/show_bug.cgi?id=151577
2034
2035         Reviewed by Timothy Hatcher.
2036
2037         The shortcuts only work if a tab at the specified ordinal exists.
2038
2039         * UserInterface/Base/Main.js:
2040         (WebInspector.contentLoaded):
2041
2042 2015-11-23  Brian Burg  <bburg@apple.com>
2043
2044         Web Inspector: Add a keyboard shortcut to restore the default zoom level
2045         https://bugs.webkit.org/show_bug.cgi?id=151237
2046
2047         Reviewed by Timothy Hatcher.
2048
2049         The Cmd-0 shortcut matches the keybindings of Safari and other browsers.
2050
2051         * UserInterface/Base/Main.js:
2052         (WebInspector.contentLoaded):
2053
2054 2015-11-23  Brian Burg  <bburg@apple.com>
2055
2056         Web Inspector: inspector settings should not be shared between different inspection levels
2057         https://bugs.webkit.org/show_bug.cgi?id=151151
2058
2059         Reviewed by Timothy Hatcher.
2060
2061         It's really annoying to have shared settings between Inspector^1 and Inspector^2, because
2062         they are not designed to respond to external changes to local storage keys. As a result,
2063         the two inspectors seemingly have different settings while both are open, but the settings
2064         clobber each other depending on which inspector is closed first. On the next inspector
2065         being opened, it has settings that reflect whichever inspector closed last.
2066
2067         To fix this, alter the local storage key prefix to incude the inspection level when it is
2068         greater than 1 (i.e., inspecting the inspector). The storage prefix becomes
2069         "com.apple.WebInspector-${inspectionLevel}." in this case.
2070         This is backwards-compatible for normal Inspector, who keeps the same storage prefix. 
2071
2072         Alternate approaches that were considered and abandoned:
2073
2074          - Use separate WKWebSiteDataStores for each inspection level. This API (as it currently is)
2075         does not support multiple on-disk storage locations. We don't want to add an entirely new
2076         Library directory for each inspector level, and sharing a single location doesn't fix the
2077         shared-settings bug. Changing storage location would lose all existing Inspector settings.
2078
2079          - Sync settings between multiple open Inspectors. This would be catastrophic, as changing
2080         the active tab on one inspector would immediately propagate to the other open inspectors.
2081
2082         * UserInterface/Models/Setting.js:
2083         (WebInspector.Setting):
2084         * UserInterface/Protocol/InspectorFrontendHostStub.js:
2085         (window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.inspectionLevel):
2086
2087 2015-11-23  Brian Burg  <bburg@apple.com>
2088
2089         Web Inspector: use Cmd-Option-L and Cmd-Option-R for toggling navigation and details sidebars
2090         https://bugs.webkit.org/show_bug.cgi?id=151572
2091
2092         Reviewed by Timothy Hatcher.
2093
2094         The previous shortcuts were Cmd-0 and Cmd-Option-0, but these didn't match Safari's
2095         sidebar shortcuts and conflict with Cmd-0 as the cross-browser way to reset page zoom.
2096
2097         * UserInterface/Base/Main.js:
2098         (WebInspector.contentLoaded):
2099
2100 2015-11-23  Brian Burg  <bburg@apple.com>
2101
2102         Web Inspector: when inspecting the inspector, add the inspection level to the title bar
2103         https://bugs.webkit.org/show_bug.cgi?id=151555
2104
2105         Reviewed by Timothy Hatcher.
2106
2107         Drive-by update to remove some localization strings that are no longer used.
2108
2109         * Localizations/en.lproj/localizedStrings.js:
2110
2111 2015-11-22  Matt Baker  <mattbaker@apple.com>
2112
2113         Web Inspector: Clean up FolderizedTreeElement folder settings
2114         https://bugs.webkit.org/show_bug.cgi?id=151539
2115
2116         Reviewed by Brian Burg.
2117
2118         The expanded state for each folder was stored as an external property on the folder
2119         tree element. Now FolderizedTreeElement keeps a map of folders to settings.
2120
2121         * UserInterface/Views/FolderizedTreeElement.js:
2122         (WebInspector.FolderizedTreeElement):
2123         (WebInspector.FolderizedTreeElement.prototype.removeChildren):
2124         (WebInspector.FolderizedTreeElement.prototype._parentTreeElementForRepresentedObject):
2125         (WebInspector.FolderizedTreeElement.prototype._folderTreeElementExpandedStateChange):
2126
2127 == Rolled over to ChangeLog-2015-11-21 ==