1 2016-01-04 Devin Rousso <dcrousso+webkit@gmail.com>
3 Web Inspector: Comma separated values in the Visual sidebar are appended with )
4 https://bugs.webkit.org/show_bug.cgi?id=152653
6 Reviewed by Timothy Hatcher.
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").
14 2016-01-03 Devin Rousso <dcrousso+webkit@gmail.com>
16 Web Inspector: Visual sidebar selector section displays inherited section for non-editable rules
17 https://bugs.webkit.org/show_bug.cgi?id=152659
19 Reviewed by Brian Burg.
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.
25 2016-01-02 Devin Rousso <dcrousso+webkit@gmail.com>
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
30 Reviewed by Timothy Hatcher.
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.
36 * Localizations/en.lproj/localizedStrings.js:
37 * UserInterface/Base/Main.js:
38 Added functions to generate link(s) to Resource instead of SourceCodeLocation.
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.
47 * UserInterface/Views/Main.css:
48 (.resource-list > .resource-link):
49 (.resource-list > .resource-link::before):
50 (.resource-list > .resource-link + .resource-link):
53 * UserInterface/Views/ResourceDetailsSidebarPanel.js:
54 (WebInspector.ResourceDetailsSidebarPanel):
55 (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
57 2016-01-02 Devin Rousso <dcrousso+webkit@gmail.com>
59 Web Inspector: Add list-style properties to Visual Sidebar
60 https://bugs.webkit.org/show_bug.cgi?id=152631
62 Reviewed by Timothy Hatcher.
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.
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
73 * UserInterface/Views/VisualStyleDetailsPanel.js:
74 (WebInspector.VisualStyleDetailsPanel):
75 (WebInspector.VisualStyleDetailsPanel.prototype._populateListStyleSection):
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.
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.
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
91 * UserInterface/Views/VisualStyleURLInput.js: Added.
92 Previously removed in r192705.
94 2016-01-02 Alberto Garcia <berto@igalia.com>
96 [GTK] webkit 2.3.5 build failure with python 3.3.4
97 https://bugs.webkit.org/show_bug.cgi?id=128971
99 Reviewed by Michael Catanzaro.
101 Make sure that the stdin encoding is 'UTF-8' if using Python 3,
102 otherwise the build will break.
106 2016-01-01 Devin Rousso <dcrousso+webkit@gmail.com>
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
111 Reviewed by Brian Burg.
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".
118 2016-01-01 Devin Rousso <dcrousso+webkit@gmail.com>
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
123 Reviewed by Brian Burg.
125 * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
126 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
127 If the CodeMirror instance is read-only, don't add any warning icons.
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.
135 * UserInterface/Views/DetailsSection.js:
136 (WebInspector.DetailsSection.prototype.set collapsed):
137 Now fires an event with the current collapsed state as data.
139 2015-12-31 Matt Baker <mattbaker@apple.com>
141 Web Inspector: "No Filter Results" message overlaps Debugger sidebar sections
142 https://bugs.webkit.org/show_bug.cgi?id=150608
144 Reviewed by Brian Burg.
146 * UserInterface/Views/DebuggerSidebarPanel.js:
147 (WebInspector.DebuggerSidebarPanel.showResourcesWithIssuesOnlyFilterFunction):
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):
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.
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.
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.
211 * UserInterface/Views/TimelineSidebarPanel.js:
212 (WebInspector.TimelineSidebarPanel.prototype.get hasSelectedElement): Deleted.
213 Defer to the base class implementation.
215 2015-12-29 Devin Rousso <dcrousso+webkit@gmail.com>
217 Web Inspector: Styling of invalid selector persists when changing the selected node
218 https://bugs.webkit.org/show_bug.cgi?id=152456
220 Reviewed by Brian Burg.
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.
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.
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.
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.
244 (WebInspector.CSSStyleDeclarationSection.prototype._updateSelectorIcon):
245 Renamed from _markSelector for clarity.
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.
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.
263 2015-12-27 Brian Burg <bburg@apple.com>
265 Web Inspector: improve pre-filled bugzilla link on Uncaught Exception reporter sheet
266 https://bugs.webkit.org/show_bug.cgi?id=152402
268 Reviewed by Joseph Pecoraro.
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").
275 * UserInterface/Debug/UncaughtExceptionReporter.js:
277 2015-12-21 Nikita Vasilyev <nvasilyev@apple.com>
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
282 Reviewed by Timothy Hatcher.
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"
288 2015-12-21 Nikita Vasilyev <nvasilyev@apple.com>
290 Web Inspector: Remove unused WebInspector.Object.removeAllListeners
291 https://bugs.webkit.org/show_bug.cgi?id=152474
293 Reviewed by Timothy Hatcher.
295 * UserInterface/Base/Object.js:
296 (WebInspector.Object.removeAllListeners): Deleted.
297 (WebInspector.Object.prototype.removeAllListeners): Deleted.
299 2015-12-20 Dan Bernstein <mitz@apple.com>
301 Remove unused setToolbarHeight
302 https://bugs.webkit.org/show_bug.cgi?id=152466
304 Reviewed by Darin Adler.
306 * UserInterface/Base/Main.js:
307 (WebInspector.contentLoaded):
308 * UserInterface/Protocol/InspectorFrontendHostStub.js:
309 (window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.setToolbarHeight): Deleted.
311 2015-12-19 Dan Bernstein <mitz@apple.com>
313 [Mac] WebKit contains dead source code for OS X Mavericks and earlier
314 https://bugs.webkit.org/show_bug.cgi?id=152462
316 Reviewed by Alexey Proskuryakov.
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:
321 * Configurations/Base.xcconfig:
322 * Configurations/DebugRelease.xcconfig:
323 * Configurations/Version.xcconfig:
325 * Scripts/copy-user-interface-resources.pl: Removed code to delete Images/Legacy.
327 * UserInterface/Images/Legacy: Removed this empty directory.
329 2015-12-18 Matt Baker <mattbaker@apple.com>
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
334 Reviewed by Joseph Pecoraro.
336 * UserInterface/Base/Main.js:
337 Added function to check for debug UI.
339 * UserInterface/Base/Object.js:
340 Added notification for debug UI enabled state change.
342 * UserInterface/Base/Utilities.js:
343 (isWebInspectorInternalScript):
344 (isWebInspectorDebugScript):
345 Added functions to check for internal and debug inspector scripts.
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.
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.
366 * UserInterface/Protocol/RemoteObject.js:
367 (WebInspector.RemoteObject.prototype.findFunctionSourceCodeLocation):
368 Only resolve inspector debug source locations when the debug UI is enabled.
370 * UserInterface/Test/Test.js:
371 Reimplemented debug UI check for tests. Always returns false.
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.
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.
386 2015-12-17 Joseph Pecoraro <pecoraro@apple.com>
388 Web Inspector: Remove "local" scope type from the protocol
389 https://bugs.webkit.org/show_bug.cgi?id=152409
391 Reviewed by Timothy Hatcher.
393 * UserInterface/Controllers/DebuggerManager.js:
394 (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
396 2015-12-17 Joseph Pecoraro <pecoraro@apple.com>
398 Web Inspector: CSS warning's fake CallFrame is not creating a valid payload
399 https://bugs.webkit.org/show_bug.cgi?id=152413
401 Reviewed by Timothy Hatcher.
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.
408 2015-12-17 Joseph Pecoraro <pecoraro@apple.com>
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
413 Reviewed by Saam Barati.
415 * Localizations/en.lproj/localizedStrings.js:
416 * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
417 (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
418 New "Block Variables" string.
420 * UserInterface/Models/ScopeChainNode.js:
421 New "Block" scope type, and update existing types.
423 * UserInterface/Controllers/DebuggerManager.js:
424 (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
425 Parse the protocol type to frontend types. Use the protocol generated enum.
427 2015-12-17 Joseph Pecoraro <pecoraro@apple.com>
429 Web Inspector: Improve names in Debugger Call Stack section when paused
430 https://bugs.webkit.org/show_bug.cgi?id=152398
432 Reviewed by Brian Burg.
434 * UserInterface/Controllers/DebuggerManager.js:
435 (WebInspector.DebuggerManager.prototype.debuggerDidPause):
436 Use a new fromPayload helper to construct the CallFrame and share code.
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
448 2015-12-17 Brian Burg <bburg@apple.com>
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
453 Reviewed by Joseph Pecoraro.
455 Follow-up fix to stop double-logging everything.
457 * UserInterface/Protocol/LoggingProtocolTracer.js:
458 (WebInspector.LoggingProtocolTracer.prototype._processEntry):
460 2015-12-17 Joseph Pecoraro <pecoraro@apple.com>
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
465 Reviewed by Timothy Hatcher.
467 * Localizations/en.lproj/localizedStrings.js:
468 New "Trace" related strings.
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.
476 (WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
477 Behave like Assert messages and absorb a message string, and include
478 extra arguments gracefully.
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.
487 (WebInspector.ConsoleMessageView.prototype.toClipboardString):
488 No need to hard code "console.trace()" in the clipboard.
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.
495 * UserInterface/Views/ObjectTreeView.js:
496 (WebInspector.ObjectTreeView.prototype.expand):
497 Do not allow expanding a loss-less preview.
499 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
501 Web Inspector: Add JSContext Script Profiling
502 https://bugs.webkit.org/show_bug.cgi?id=151899
504 Reviewed by Brian Burg.
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.
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.
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):
559 2015-12-17 Matt Baker <mattbaker@apple.com>
561 Web Inspector: REGRESSION (r193913): Popover covers completion suggestions
562 https://bugs.webkit.org/show_bug.cgi?id=152369
564 Reviewed by Timothy Hatcher.
566 * UserInterface/Views/Variables.css:
568 Swap popover and tooltip z-index ordering.
570 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
572 REGRESSION: Web Inspector: console.dir(...) should force allowing object expansion
573 https://bugs.webkit.org/show_bug.cgi?id=152328
575 Reviewed by Timothy Hatcher.
577 * UserInterface/Views/ConsoleMessageView.js:
578 (WebInspector.ConsoleMessageView.prototype._formatParameter):
579 Propogate the force parameter down.
581 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
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
586 Reviewed by Timothy Hatcher.
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.
596 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
598 Web Inspector: Improve copy of console message containing Array and Map output
599 https://bugs.webkit.org/show_bug.cgi?id=152329
601 Reviewed by Timothy Hatcher.
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.
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):
621 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
623 Web Inspector: Typing object literal in the console causes a parse error
624 https://bugs.webkit.org/show_bug.cgi?id=141737
626 Reviewed by Timothy Hatcher.
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.
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.
638 * UserInterface/Controllers/RuntimeManager.js:
639 (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
640 Detect and convenience wrap the given expression.
642 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
644 Uncaught Exception View has undefined exception URL
645 https://bugs.webkit.org/show_bug.cgi?id=152327
647 Reviewed by Darin Adler.
649 * UserInterface/Debug/UncaughtExceptionReporter.js:
650 (handleUncaughtException):
651 Use ErrorEvent's filename property, not url which is undefined.
653 2015-12-16 Joseph Pecoraro <pecoraro@apple.com>
655 Uncaught Exception: ReferenceError: Can't find variable: resolvedValue
656 https://bugs.webkit.org/show_bug.cgi?id=152326
658 Reviewed by Darin Adler.
660 * UserInterface/Views/ObjectTreeBaseTreeElement.js:
661 (WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler):
662 This identifier is used later on, so assign it here.
664 2015-12-15 Joseph Pecoraro <pecoraro@apple.com>
666 Web Inspector: Localize "global code" and "eval code" strings
667 https://bugs.webkit.org/show_bug.cgi?id=152313
669 Reviewed by Timothy Hatcher.
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.
676 2015-12-15 Matt Baker <mattbaker@apple.com>
678 Web Inspector: Convert Sidebar classes to use View
679 https://bugs.webkit.org/show_bug.cgi?id=152274
681 Reviewed by Brian Burg.
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.
687 * UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
688 (WebInspector.ApplicationCacheDetailsSidebarPanel):
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):
697 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
698 (WebInspector.DOMNodeDetailsSidebarPanel):
700 * UserInterface/Views/DebuggerSidebarPanel.js:
701 (WebInspector.DebuggerSidebarPanel):
702 (WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
704 * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
705 (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildLayerInfoSection):
706 (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
708 * UserInterface/Views/NavigationSidebarPanel.js:
709 (WebInspector.NavigationSidebarPanel):
710 (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
711 (WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility):
713 * UserInterface/Views/ProbeDetailsSidebarPanel.js:
714 (WebInspector.ProbeDetailsSidebarPanel.prototype.set inspectedProbeSets):
716 * UserInterface/Views/ResourceDetailsSidebarPanel.js:
717 (WebInspector.ResourceDetailsSidebarPanel):
718 (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL):
719 (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
720 (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestDataSection):
722 * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
723 (WebInspector.ScopeChainDetailsSidebarPanel):
724 (WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh.):
725 (WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):
727 * UserInterface/Views/SidebarPanel.js:
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.
741 * UserInterface/Views/StyleDetailsPanel.js:
743 (WebInspector.StyleDetailsPanel):
744 (WebInspector.StyleDetailsPanel.prototype.get element): Deleted.
745 Defer to View.element getter.
747 * UserInterface/Views/TimelineSidebarPanel.js:
748 (WebInspector.TimelineSidebarPanel.prototype._updateTimelineOverviewHeight):
750 * UserInterface/Views/VisualStyleDetailsPanel.js:
751 (WebInspector.VisualStyleDetailsPanel):
752 (WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
754 2015-12-14 Joseph Pecoraro <pecoraro@apple.com>
756 Web Inspector: Stack traces in console incorrectly show "(anonymous function)" for global code
757 https://bugs.webkit.org/show_bug.cgi?id=152280
759 Reviewed by Brian Burg.
761 * UserInterface/Images/Program.svg: Added.
762 * UserInterface/Images/gtk/Program.svg: Added.
763 Copied from TimelineRecordScriptEvaluated.svg.
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.
770 (WebInspector.CallFrame.fromPayload):
771 Detect different sources of program code (global, eval, module).
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.
779 2015-12-14 Joseph Pecoraro <pecoraro@apple.com>
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
784 Reviewed by Timothy Hatcher.
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.
791 2015-12-13 Matt Baker <mattbaker@apple.com>
793 Web Inspector: Make TimelineOverview's graph container a subview
794 https://bugs.webkit.org/show_bug.cgi?id=152235
796 Reviewed by Brian Burg.
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.
810 2015-12-12 Matt Baker <mattbaker@apple.com>
812 Web Inspector: CodeMirrorTokenTrackingController handles symbols in class definitions incorrectly
813 https://bugs.webkit.org/show_bug.cgi?id=152218
815 Reviewed by Timothy Hatcher.
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.
822 * UserInterface/Views/CodeMirrorAdditions.js:
823 Use localState when available, to prevent passing a state that doesn't define a tokenize property.
825 2015-12-12 Joseph Pecoraro <pecoraro@apple.com>
827 REGRESSION (r191613): Web Inspector: Can't type spaces when editing DOM nodes
828 https://bugs.webkit.org/show_bug.cgi?id=152173
830 Reviewed by Timothy Hatcher.
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.
839 2015-12-12 Nikita Vasilyev <nvasilyev@apple.com>
841 Web Inspector: "Selected Element" should use sans-serif font, not monospace
842 https://bugs.webkit.org/show_bug.cgi?id=152212
844 Reviewed by Timothy Hatcher.
846 * UserInterface/Views/ConsoleMessageView.css:
847 (.console-user-command.special-user-log > .console-message-text):
849 2015-12-11 Nikita Vasilyev <nvasilyev@apple.com>
851 Web Inspector: When logging strings, detect stack traces and show them as StackTraceView
852 https://bugs.webkit.org/show_bug.cgi?id=149790
854 Reviewed by Timothy Hatcher.
856 * UserInterface/Models/StackTrace.js:
857 (WebInspector.StackTrace.isLikelyStackTrace): Added.
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.
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.
869 (WebInspector.ConsoleMessageView.prototype._isStackTrace): Added.
870 (WebInspector.ConsoleMessageView.prototype._formatParameterAsString):
871 Detect stack traces and format them appropriately.
873 2015-12-10 Nikita Vasilyev <nvasilyev@apple.com>
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
878 Reviewed by Timothy Hatcher.
880 * UserInterface/Views/DashboardContainerView.css:
881 (.dashboard-container .advance-arrow):
883 2015-12-10 Matt Baker <mattbaker@apple.com>
885 Web Inspector: debugger popover should have source location link when showing function source
886 https://bugs.webkit.org/show_bug.cgi?id=151866
888 Reviewed by Brian Burg.
890 Added source code location link to function popover header.
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):
897 2015-12-10 Nikita Vasilyev <nvasilyev@apple.com>
899 Web Inspector: [Meta] Unify z-index values in Inspector's CSS
900 https://bugs.webkit.org/show_bug.cgi?id=151978
902 Introduce CSS variables for z-index due to recurring issues with incorrectly overlapping elements.
904 From now on, all z-index values >= 64 must be defined as variables.
905 Values below 64 must not.
907 Reviewed by Timothy Hatcher.
909 * UserInterface/Views/Variables.css:
911 Introduce z-index variables.
913 * UserInterface/Debug/UncaughtExceptionReporter.css:
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:
928 (.find-banner > button.segmented:active):
929 * UserInterface/Views/Main.css:
931 (.message-text-view):
933 * UserInterface/Views/Popover.css:
935 * UserInterface/Views/Resizer.css:
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):
943 2015-12-09 Matt Baker <mattbaker@apple.com>
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
948 Reviewed by Brian Burg.
950 * UserInterface/Base/Main.js:
951 Use root view singleton instead of creating it explicitly.
953 * UserInterface/Views/View.js:
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.
969 (WebInspector.View.prototype.didAttach): Deleted.
970 (WebInspector.View.prototype.didDetach): Deleted.
971 Replaced by didMoveToParent.
973 2015-12-09 Brian Burg <bburg@apple.com>
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
978 Reviewed by Timothy Hatcher.
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.
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
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.
995 This change moves Setting.js into the Base/ directory,
996 since it is used by Views, Models, and now Protocol classes.
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):
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.
1014 (InspectorBackendClass.prototype.set dumpInspectorTimeStats):
1015 (InspectorBackendClass.prototype.get dumpInspectorTimeStats):
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.
1021 (InspectorBackendClass.prototype.set activeTracer):
1022 (InspectorBackendClass.prototype.get activeTracer):
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.
1028 (InspectorBackendClass.prototype.dispatch):
1029 (InspectorBackendClass.prototype._startOrStopAutomaticTracing):
1031 Sync the Setting with activeTracer. If an custom tracer is active,
1032 don't replace it with the automatic logging tracer.
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:
1066 2015-12-09 Brian Burg <bburg@apple.com>
1068 Web Inspector: zoom with Ctrl +/- doesn't work correctly when inspector is docked
1069 https://bugs.webkit.org/show_bug.cgi?id=152076
1071 Reviewed by Timothy Hatcher.
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.
1077 * UserInterface/Base/Main.js:
1079 2015-12-08 Joseph Pecoraro <pecoraro@apple.com>
1081 Web Inspector: Workaround arrow function issue in TimelineOverviewGraph.js
1082 https://bugs.webkit.org/show_bug.cgi?id=152031
1084 Reviewed by Timothy Hatcher.
1086 * UserInterface/Views/TimelineOverviewGraph.js:
1087 (WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
1088 Workaround an existing arrow function issue by moving off of arrow functions here.
1090 2015-12-08 Matt Baker <mattbaker@apple.com>
1092 Web Inspector: Add a hidden property to TreeOutline
1093 https://bugs.webkit.org/show_bug.cgi?id=152014
1095 Reviewed by Timothy Hatcher.
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):
1103 * UserInterface/Views/TimelineSidebarPanel.js:
1104 (WebInspector.TimelineSidebarPanel):
1105 (WebInspector.TimelineSidebarPanel.prototype._changeViewMode):
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):
1117 2015-12-08 Matt Baker <mattbaker@apple.com>
1119 Web Inspector: Global Breakpoints should always be visible
1120 https://bugs.webkit.org/show_bug.cgi?id=151066
1122 Reviewed by Timothy Hatcher.
1124 * UserInterface/Views/DebuggerSidebarPanel.js:
1125 (WebInspector.DebuggerSidebarPanel):
1126 Turn off filtering for Global Breakpoints elements.
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.
1137 2015-12-07 Brian Burg <bburg@apple.com>
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
1142 Reviewed by Timothy Hatcher.
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.
1152 Split existing code into multiple functions so it's easier to follow.
1153 Add miscellaneous guards against internal corruption and weird cases.
1155 * UserInterface/Base/Main.js:
1156 (WebInspector.contentLoaded): Store the flag on the global object
1157 in case WebInspector becomes shadowed or otherwise unusable.
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):
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.
1187 2015-12-06 Devin Rousso <dcrousso+webkit@gmail.com>
1189 Web Inspector: Regression (r192936) - changing selectors in the visual styles sidebar is broken
1190 https://bugs.webkit.org/show_bug.cgi?id=151924
1192 Reviewed by Brian Burg.
1194 * UserInterface/Views/VisualStyleSelectorSection.js:
1195 (WebInspector.VisualStyleSelectorSection):
1196 (WebInspector.VisualStyleSelectorSection.prototype._selectorChanged):
1197 Now uses an event listener instead of an "onselect" function.
1199 2015-12-06 Matt Baker <mattbaker@apple.com>
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
1204 Reviewed by Timothy Hatcher.
1206 Updated setters that use default values to convert falsy inputs to the default value
1207 before compariing against the current value.
1209 * UserInterface/Models/TimelineMarker.js:
1210 (WebInspector.TimelineMarker.prototype.set time):
1211 Assert new value is a number.
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.
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):
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.
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):
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.
1256 * UserInterface/Views/TimelineView.js:
1257 (WebInspector.TimelineView.prototype.set zeroTime):
1258 (WebInspector.TimelineView.prototype.set startTime):
1259 (WebInspector.TimelineView.prototype.set endTime):
1261 2015-12-04 Commit Queue <commit-queue@webkit.org>
1263 Unreviewed, rolling out r193486.
1264 https://bugs.webkit.org/show_bug.cgi?id=151904
1266 Causes Infinite Recursion in Timeline Recording (Requested by
1267 JoePeck on #webkit).
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
1276 2015-12-04 Joseph Pecoraro <pecoraro@apple.com>
1278 Web Inspector: Uncaught Exception with Reload shortcut in JSContext Inspector
1279 https://bugs.webkit.org/show_bug.cgi?id=151896
1281 Reviewed by Timothy Hatcher.
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.
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.
1293 2015-12-04 Matt Baker <mattbaker@apple.com>
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
1298 Reviewed by Brian Burg.
1300 * UserInterface/Views/NewTabContentView.js:
1301 (WebInspector.NewTabContentView.prototype._updateShownTabs):
1302 Removed workaround added in https://bugs.webkit.org/show_bug.cgi?id=151594.
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.
1309 2015-12-04 Brian Burg <bburg@apple.com>
1311 Web Inspector: support runtime registration of tab type associations
1312 https://bugs.webkit.org/show_bug.cgi?id=151594
1314 Reviewed by Joseph Pecoraro.
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
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.
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.
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.
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:
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.
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):
1395 Add a workaround for <https://webkit.org/b/151876>. This bug is
1396 revealed by the changes to NewTabContentView in this patch.
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.
1407 2015-12-04 Joseph Pecoraro <pecoraro@apple.com>
1409 Web Inspector: Remove untested and unused Worker inspection
1410 https://bugs.webkit.org/show_bug.cgi?id=151848
1412 Reviewed by Brian Burg.
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.
1423 2015-12-04 Joseph Pecoraro <pecoraro@apple.com>
1425 Web Inspector: Specifically Identify the Global Lexical Environment Scope
1426 https://bugs.webkit.org/show_bug.cgi?id=151828
1428 Reviewed by Brian Burg.
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.
1438 2015-12-03 Anders Carlsson <andersca@apple.com>
1440 Remove Objective-C GC support
1441 https://bugs.webkit.org/show_bug.cgi?id=151819
1442 rdar://problem/23746991
1444 Reviewed by Dan Bernstein.
1446 * Configurations/Base.xcconfig:
1448 2015-12-03 Matt Baker <mattbaker@apple.com>
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
1453 Reviewed by Timothy Hatcher.
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.
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.
1469 2015-12-02 Joseph Pecoraro <pecoraro@apple.com>
1471 Web Inspector: Handle YieldExpressions in the ScriptSyntaxTree
1472 https://bugs.webkit.org/show_bug.cgi?id=151730
1474 Reviewed by Brian Burg.
1476 * UserInterface/Models/NativeFunctionParameters.js:
1477 Add the Generator API.
1479 * UserInterface/Models/ScriptSyntaxTree.js:
1480 (WebInspector.ScriptSyntaxTree.prototype._recurse):
1481 (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
1482 Handle YieldExpressions.
1484 2015-12-01 Matt Baker <mattbaker@apple.com>
1486 Web Inspector: TreeOutline should just dispatch events via WebInspector.Object
1487 https://bugs.webkit.org/show_bug.cgi?id=148067
1489 Reviewed by Timothy Hatcher.
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.
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.
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.
1508 * UserInterface/Views/DebuggerSidebarPanel.js:
1509 (WebInspector.DebuggerSidebarPanel):
1510 (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
1511 (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
1513 * UserInterface/Views/NavigationSidebarPanel.js:
1514 (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
1515 (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
1517 * UserInterface/Views/NetworkGridContentView.js:
1518 (WebInspector.NetworkGridContentView):
1519 (WebInspector.NetworkGridContentView.prototype._treeSelectionDidChange):
1521 * UserInterface/Views/ResourceSidebarPanel.js:
1522 (WebInspector.ResourceSidebarPanel):
1523 (WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):
1524 (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected): Deleted.
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.
1534 * UserInterface/Views/SearchSidebarPanel.js:
1535 (WebInspector.SearchSidebarPanel):
1536 (WebInspector.SearchSidebarPanel.prototype._treeSelectionDidChange):
1537 (WebInspector.SearchSidebarPanel.prototype._treeElementSelected): Deleted.
1539 * UserInterface/Views/StorageSidebarPanel.js:
1540 (WebInspector.StorageSidebarPanel):
1541 (WebInspector.StorageSidebarPanel._treeSelectionDidChange):
1543 * UserInterface/Views/TimelineDataGrid.js:
1544 (WebInspector.TimelineDataGrid.prototype._createPopoverContent):
1545 (WebInspector.TimelineDataGrid.prototype._popoverCallStackTreeSelectionDidChange):
1546 (WebInspector.TimelineDataGrid):
1548 * UserInterface/Views/TimelineSidebarPanel.js:
1549 (WebInspector.TimelineSidebarPanel):
1550 (WebInspector.TimelineSidebarPanel.prototype._recordingsTreeSelectionDidChange):
1551 (WebInspector.TimelineSidebarPanel.prototype._timelinesTreeSelectionDidChange):
1552 (WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected): Deleted.
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.
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.
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.
1594 * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
1595 (WebInspector.VisualStyleCommaSeparatedKeywordEditor):
1596 (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeSelectionDidChange):
1597 (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeElementSelected): Deleted.
1599 2015-12-01 Joseph Pecoraro <pecoraro@apple.com>
1601 Web Inspector: Timestamp in Tooltip of Event Markers is incorrect
1602 https://bugs.webkit.org/show_bug.cgi?id=151722
1604 Reviewed by Timothy Hatcher.
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.
1610 2015-12-01 Joseph Pecoraro <pecoraro@apple.com>
1612 Unreviewed common typo fix "occurance" => "occurrence".
1614 * Scripts/combine-resources.pl:
1617 2015-12-01 Joseph Pecoraro <pecoraro@apple.com>
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
1622 Reviewed by Timothy Hatcher.
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.
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.
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.
1636 * UserInterface/Controllers/JavaScriptLogViewController.js:
1637 (WebInspector.JavaScriptLogViewController.prototype.clear):
1639 2015-12-01 Joseph Pecoraro <pecoraro@apple.com>
1641 Web Inspector: Update Timeline UI based on the Instruments in the Active Recording
1642 https://bugs.webkit.org/show_bug.cgi?id=151374
1644 Reviewed by Brian Burg.
1646 * UserInterface/Views/TimelineRecordingContentView.js:
1647 (WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
1648 Modernize as I was in this code while looking into this patch.
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.
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.
1660 (WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
1661 (WebInspector.TimelineSidebarPanel.prototype._clearInstruments):
1662 When loading a new Recording clear the UI.
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.
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.
1675 2015-12-01 Joseph Pecoraro <pecoraro@apple.com>
1677 Web Inspector: Initial support for variable timelines
1678 https://bugs.webkit.org/show_bug.cgi?id=151372
1680 Reviewed by Brian Burg.
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.
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.
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.
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.
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.
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.
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.
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.
1774 2015-12-01 Joseph Pecoraro <pecoraro@apple.com>
1776 Web Inspector: Broken Inspector when resources are minified
1777 https://bugs.webkit.org/show_bug.cgi?id=151711
1779 Reviewed by Timothy Hatcher.
1781 * Scripts/combine-resources.pl:
1783 Provide a way to just strip resources matches a pattern.
1785 * Scripts/copy-user-interface-resources.pl:
1786 Strip "Debug/" resources before combining / minifying others.
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.
1794 2015-11-30 Brian Burg <bburg@apple.com>
1796 Web Inspector: show something useful when the inspector frontend fails to load
1797 https://bugs.webkit.org/show_bug.cgi?id=151643
1799 Reviewed by Timothy Hatcher.
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.
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.
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.
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.
1819 2015-11-30 Brian Burg <bburg@apple.com>
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
1824 Reviewed by Darin Adler.
1826 Add support for other kill ring-eligible keybindinsg, such as
1827 deleting by word, group, or line forwards and backwards.
1829 * UserInterface/Controllers/CodeMirrorTextKillController.js:
1830 (WebInspector.CodeMirrorTextKillController):
1831 (WebInspector.CodeMirrorTextKillController.prototype._handleTextKillCommand): Renamed from _handleKillLine.
1833 Parameterize the function so it can handle any keybinding and
1834 command. Take a kill ring insertion mode argument, too.
1836 (WebInspector.CodeMirrorTextKillController.prototype._handleTextChange):
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.
1842 (WebInspector.CodeMirrorTextKillController.prototype._handleKillLine): Deleted.
1844 2015-11-29 Brian Burg <bburg@apple.com>
1846 Web Inspector: Add context menu item to Reload the Inspector
1847 https://bugs.webkit.org/show_bug.cgi?id=141742
1849 Reviewed by Timothy Hatcher.
1851 Add a global context menu and global shortcut (Cmd-Opt-Shift-R) to
1852 reload the Web Inspector frontend without closing the browser.
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.
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.
1863 * UserInterface/Base/Main.js:
1864 (WebInspector.unlocalizedString):
1866 Added. Make it obvious when strings are intentionally not localized.
1868 (WebInspector._contextMenuRequested):
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.
1875 2015-11-29 Brian Burg <bburg@apple.com>
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
1880 Reviewed by Timothy Hatcher.
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().
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.
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.
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.
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):
1969 2015-11-28 Devin Rousso <dcrousso+webkit@gmail.com>
1971 Web Inspector: Styles sidebar placeholder is misaligned
1972 https://bugs.webkit.org/show_bug.cgi?id=151638
1974 Reviewed by Brian Burg.
1976 * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
1977 (.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
1979 2015-11-28 Devin Rousso <dcrousso+webkit@gmail.com>
1981 Web Inspector: REGRESSION: "Duplicate Selector" context menu item doesn't work
1982 https://bugs.webkit.org/show_bug.cgi?id=151628
1984 Reviewed by Brian Burg.
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.
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.
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):
2005 2015-11-24 Brian Burg <bburg@apple.com>
2007 Web Inspector: save Inspector's breakpoints to localStorage whenever they are modified
2008 https://bugs.webkit.org/show_bug.cgi?id=151581
2010 Reviewed by Timothy Hatcher.
2012 Serialize all breakpoints to the "breakpoints" Setting in local storage
2013 whenever any breakpoint model object is added, removed, or modified.
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.
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.
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.
2030 2015-11-24 Brian Burg <bburg@apple.com>
2032 Web Inspector: Cmd-1 to Cmd-9 shortcuts should select tabs by ordinal
2033 https://bugs.webkit.org/show_bug.cgi?id=151577
2035 Reviewed by Timothy Hatcher.
2037 The shortcuts only work if a tab at the specified ordinal exists.
2039 * UserInterface/Base/Main.js:
2040 (WebInspector.contentLoaded):
2042 2015-11-23 Brian Burg <bburg@apple.com>
2044 Web Inspector: Add a keyboard shortcut to restore the default zoom level
2045 https://bugs.webkit.org/show_bug.cgi?id=151237
2047 Reviewed by Timothy Hatcher.
2049 The Cmd-0 shortcut matches the keybindings of Safari and other browsers.
2051 * UserInterface/Base/Main.js:
2052 (WebInspector.contentLoaded):
2054 2015-11-23 Brian Burg <bburg@apple.com>
2056 Web Inspector: inspector settings should not be shared between different inspection levels
2057 https://bugs.webkit.org/show_bug.cgi?id=151151
2059 Reviewed by Timothy Hatcher.
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.
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.
2072 Alternate approaches that were considered and abandoned:
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.
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.
2082 * UserInterface/Models/Setting.js:
2083 (WebInspector.Setting):
2084 * UserInterface/Protocol/InspectorFrontendHostStub.js:
2085 (window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.inspectionLevel):
2087 2015-11-23 Brian Burg <bburg@apple.com>
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
2092 Reviewed by Timothy Hatcher.
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.
2097 * UserInterface/Base/Main.js:
2098 (WebInspector.contentLoaded):
2100 2015-11-23 Brian Burg <bburg@apple.com>
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
2105 Reviewed by Timothy Hatcher.
2107 Drive-by update to remove some localization strings that are no longer used.
2109 * Localizations/en.lproj/localizedStrings.js:
2111 2015-11-22 Matt Baker <mattbaker@apple.com>
2113 Web Inspector: Clean up FolderizedTreeElement folder settings
2114 https://bugs.webkit.org/show_bug.cgi?id=151539
2116 Reviewed by Brian Burg.
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.
2121 * UserInterface/Views/FolderizedTreeElement.js:
2122 (WebInspector.FolderizedTreeElement):
2123 (WebInspector.FolderizedTreeElement.prototype.removeChildren):
2124 (WebInspector.FolderizedTreeElement.prototype._parentTreeElementForRepresentedObject):
2125 (WebInspector.FolderizedTreeElement.prototype._folderTreeElementExpandedStateChange):
2127 == Rolled over to ChangeLog-2015-11-21 ==