| 2015-12-29 Devin Rousso <dcrousso+webkit@gmail.com> |
| |
| Web Inspector: Styling of invalid selector persists when changing the selected node |
| https://bugs.webkit.org/show_bug.cgi?id=152456 |
| |
| Reviewed by Brian Burg. |
| |
| If the user changes the selector of a CSS rule to be invalid (e.g. having |
| a { or ; character), it is expected that the invalid indicator will be removed |
| once the user changes nodes or reverts the selector to its previous value. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Views/CSSStyleDeclarationSection.css: |
| (.style-declaration-section > .header > .icon.toggle-able:hover): |
| (.style-declaration-section > .header > .icon.toggle-able:active): |
| (.style-declaration-section:not(.invalid-selector) > .header > .icon.toggle-able:hover): Deleted. |
| Added better :hover and :active styles. |
| |
| * UserInterface/Views/CSSStyleDeclarationSection.js: |
| (WebInspector.CSSStyleDeclarationSection): |
| (WebInspector.CSSStyleDeclarationSection.prototype.refresh): |
| (WebInspector.CSSStyleDeclarationSection.prototype._handleIconElementClicked): |
| If the selector is invalid, simply refresh the section to regenerate the |
| original selector with correct content, specificity, and highlighting. |
| |
| (WebInspector.CSSStyleDeclarationSection.prototype.get _hasInvalidSelector): Deleted. |
| Moved the state of the invalid selector to a member |
| variable instead of a DOM class. |
| |
| (WebInspector.CSSStyleDeclarationSection.prototype._updateSelectorIcon): |
| Renamed from _markSelector for clarity. |
| |
| * UserInterface/Views/VisualStyleSelectorTreeItem.css: |
| (.item.visual-style-selector-item.selector-invalid > .icon:hover): |
| (.item.visual-style-selector-item.selector-invalid > .icon:active): |
| (.item.visual-style-selector-item.selector-invalid > .icon): |
| Added :hover and :active styles. |
| |
| * UserInterface/Views/VisualStyleSelectorTreeItem.js: |
| (WebInspector.VisualStyleSelectorTreeItem): |
| (WebInspector.VisualStyleSelectorTreeItem.prototype.onattach): |
| (WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector): |
| (WebInspector.VisualStyleSelectorTreeItem.prototype._updateSelectorIcon): |
| (WebInspector.VisualStyleSelectorTreeItem.prototype._handleIconElementClicked): |
| (WebInspector.VisualStyleSelectorTreeItem.prototype._selectorChanged): Deleted. |
| Changed the names of a few functions to provide better |
| consistency across the classes in the Style sidebar. |
| |
| 2015-12-27 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: improve pre-filled bugzilla link on Uncaught Exception reporter sheet |
| https://bugs.webkit.org/show_bug.cgi?id=152402 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Include the UA string, inspected page URL, and a template that includes |
| steps to reproduce and notes. Other common headings (regression, expected, |
| results, summary) are omitted because they are unlikely to be known when |
| an uncaught exception occurs, or are obvious ("shouldn't throw exception"). |
| |
| * UserInterface/Debug/UncaughtExceptionReporter.js: |
| |
| 2015-12-21 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| WebInspector: Can't open a new tab: Uncaught Exception: TypeError: this.isNewTabWithTypeAllowed is not a function |
| https://bugs.webkit.org/show_bug.cgi?id=152471 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Base/Main.js: |
| (WebInspector._updateNewTabButtonState): |
| Don't use arrow functions because of https://webkit.org/b/152497 "Arrow functions: 'this' isn't lexically bound" |
| |
| 2015-12-21 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Remove unused WebInspector.Object.removeAllListeners |
| https://bugs.webkit.org/show_bug.cgi?id=152474 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Base/Object.js: |
| (WebInspector.Object.removeAllListeners): Deleted. |
| (WebInspector.Object.prototype.removeAllListeners): Deleted. |
| |
| 2015-12-20 Dan Bernstein <mitz@apple.com> |
| |
| Remove unused setToolbarHeight |
| https://bugs.webkit.org/show_bug.cgi?id=152466 |
| |
| Reviewed by Darin Adler. |
| |
| * UserInterface/Base/Main.js: |
| (WebInspector.contentLoaded): |
| * UserInterface/Protocol/InspectorFrontendHostStub.js: |
| (window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.setToolbarHeight): Deleted. |
| |
| 2015-12-19 Dan Bernstein <mitz@apple.com> |
| |
| [Mac] WebKit contains dead source code for OS X Mavericks and earlier |
| https://bugs.webkit.org/show_bug.cgi?id=152462 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| - Removed build setting definitions for OS X 10.9 and earlier, and simplified defintions |
| that became uniform across all OS X versions as a result: |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| * Configurations/Version.xcconfig: |
| |
| * Scripts/copy-user-interface-resources.pl: Removed code to delete Images/Legacy. |
| |
| * UserInterface/Images/Legacy: Removed this empty directory. |
| |
| 2015-12-18 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Make it possible to debug injected scripts when the Debug UI is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=152445 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/Main.js: |
| Added function to check for debug UI. |
| |
| * UserInterface/Base/Object.js: |
| Added notification for debug UI enabled state change. |
| |
| * UserInterface/Base/Utilities.js: |
| (isWebInspectorInternalScript): |
| (isWebInspectorDebugScript): |
| Added functions to check for internal and debug inspector scripts. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WebInspector.DebuggerManager): |
| Maintain a list of inspector debug scripts, so that the manager can |
| add and remove them when the debug UI is enabled/disabled. |
| (WebInspector.DebuggerManager.prototype.get knownNonResourceScripts): |
| (WebInspector.DebuggerManager.prototype.reset): |
| Clear the list of inspector debug scripts. |
| (WebInspector.DebuggerManager.prototype.debuggerDidPause): |
| (WebInspector.DebuggerManager.prototype.scriptDidParse): |
| Skip internal inspector scripts. Debug inspector scripts are tracked, |
| and an added event is dispatched if the debug UI is enabled. |
| (WebInspector.DebuggerManager.prototype._debugUIEnabledDidChange): |
| Dispatch added/removed events for inspector debug scripts. |
| |
| * UserInterface/Debug/Bootstrap.js: |
| (WebInspector.runBootstrapOperations): |
| Expose changes to the debug UI setting to the reset of the UI, by dispatching |
| a WebInspector.Notification.DebugUIEnabledDidChange event. |
| |
| * UserInterface/Protocol/RemoteObject.js: |
| (WebInspector.RemoteObject.prototype.findFunctionSourceCodeLocation): |
| Only resolve inspector debug source locations when the debug UI is enabled. |
| |
| * UserInterface/Test/Test.js: |
| Reimplemented debug UI check for tests. Always returns false. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WebInspector.DebuggerSidebarPanel.prototype._addScript): |
| Removed check for inspector debug scripts. DebuggerManager filters scripts as needed. |
| (WebInspector.DebuggerSidebarPanel.prototype._scriptRemoved): |
| Handle DebuggerManager ScriptRemoved events. Only applies to debug scripts. |
| |
| * UserInterface/Views/ResourceSidebarPanel.js: |
| (WebInspector.ResourceSidebarPanel): |
| (WebInspector.ResourceSidebarPanel.prototype._scriptWasRemoved): |
| Handle DebuggerManager ScriptRemoved events. Only applies to debug scripts. |
| (WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded): |
| Removed check for inspector debug scripts. DebuggerManager filters scripts as needed. |
| |
| 2015-12-17 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Remove "local" scope type from the protocol |
| https://bugs.webkit.org/show_bug.cgi?id=152409 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload): |
| |
| 2015-12-17 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CSS warning's fake CallFrame is not creating a valid payload |
| https://bugs.webkit.org/show_bug.cgi?id=152413 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WebInspector.ConsoleMessageView.prototype._appendLocationLink): |
| This attempts to create a CallFrame from a Console.CallFrame payload, |
| but this was missing the required functionName string parameter. |
| |
| 2015-12-17 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Provide a way to distinguish a nested lexical block from a function's lexical block |
| https://bugs.webkit.org/show_bug.cgi?id=152361 |
| |
| Reviewed by Saam Barati. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Views/ScopeChainDetailsSidebarPanel.js: |
| (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection): |
| New "Block Variables" string. |
| |
| * UserInterface/Models/ScopeChainNode.js: |
| New "Block" scope type, and update existing types. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload): |
| Parse the protocol type to frontend types. Use the protocol generated enum. |
| |
| 2015-12-17 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Improve names in Debugger Call Stack section when paused |
| https://bugs.webkit.org/show_bug.cgi?id=152398 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WebInspector.DebuggerManager.prototype.debuggerDidPause): |
| Use a new fromPayload helper to construct the CallFrame and share code. |
| |
| * UserInterface/Models/CallFrame.js: |
| (WebInspector.CallFrame.functionNameFromPayload): |
| (WebInspector.CallFrame.programCodeFromPayload): |
| (WebInspector.CallFrame.fromDebuggerPayload): |
| (WebInspector.CallFrame.fromPayload): |
| Add a new way to construct a call frame. There are two kinds of |
| CallFrame payloads in the protocol: |
| - Debugger.CallFrame, this new path |
| - Console.CallFrame, the pre-existing path |
| |
| 2015-12-17 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: control whether to collect and dump protocol messages using a WebInspector.Setting |
| https://bugs.webkit.org/show_bug.cgi?id=151635 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Follow-up fix to stop double-logging everything. |
| |
| * UserInterface/Protocol/LoggingProtocolTracer.js: |
| (WebInspector.LoggingProtocolTracer.prototype._processEntry): |
| |
| 2015-12-17 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Improve console.trace, make it more like console.assert and inline the message |
| https://bugs.webkit.org/show_bug.cgi?id=152352 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| New "Trace" related strings. |
| |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WebInspector.ConsoleMessageView.prototype.expand): |
| Since we auto-expand Trace messages for their Call Stack, don't also |
| auto-expand a single inner object, which may be big and push the |
| actual stack trace off the screen. |
| |
| (WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments): |
| Behave like Assert messages and absorb a message string, and include |
| extra arguments gracefully. |
| |
| (WebInspector.ConsoleMessageView.prototype._appendFormattedArguments): |
| For expandable messages with simple extra arguments (console.trace with |
| primitives and backtrace, or console.assert with primitives and backtrace) |
| we were hiding the inline lossless previews and not showing them as a |
| bulleted list below. We can just keep the lossless previews inline in the |
| title, since they were only put there because they are small and lossless. |
| |
| (WebInspector.ConsoleMessageView.prototype.toClipboardString): |
| No need to hard code "console.trace()" in the clipboard. |
| |
| * UserInterface/Views/ConsoleMessageView.css: |
| (.console-message.expandable.expanded :matches(.console-message-preview, .console-message-preview-divider):not(.inline-lossless)): |
| (.console-message.expandable.expanded :matches(.console-message-preview, .console-message-preview-divider)): Deleted. |
| Don't hide the inline lossless preview in the console message title when it is inline-lossless. |
| |
| * UserInterface/Views/ObjectTreeView.js: |
| (WebInspector.ObjectTreeView.prototype.expand): |
| Do not allow expanding a loss-less preview. |
| |
| 2015-12-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Add JSContext Script Profiling |
| https://bugs.webkit.org/show_bug.cgi?id=151899 |
| |
| Reviewed by Brian Burg. |
| |
| Enable the Timeline tab for JSContext inspection. Currently only |
| JSContext inspection will use the ScriptProfiler domain, it will |
| be enabled for Page inspection in a follow-up. |
| |
| First pass at the UI creates basic ScriptTimelineRecords for |
| ScriptProfiler events. At the end of recording, when profiles |
| are downloaded, it attaches profiles to the timeline records |
| and refreshes the Scripts timeline. |
| |
| * UserInterface/Base/Main.js: |
| (WebInspector.loaded): |
| * UserInterface/Controllers/TimelineManager.js: |
| (WebInspector.TimelineManager): |
| (WebInspector.TimelineManager.defaultInstruments): |
| (WebInspector.TimelineManager.prototype.computeElapsedTime): |
| (WebInspector.TimelineManager.prototype.scriptProfilerIsTracking): |
| (WebInspector.TimelineManager.prototype._loadNewRecording): |
| (WebInspector.TimelineManager.prototype._mainResourceDidChange): |
| (WebInspector.TimelineManager.prototype._resourceWasAdded): |
| (WebInspector.TimelineManager.prototype._garbageCollected): |
| (WebInspector.TimelineManager.prototype._addRecord): Deleted. |
| * UserInterface/Main.html: |
| * UserInterface/Models/Instrument.js: |
| (WebInspector.Instrument.startLegacyTimelineAgent): |
| * UserInterface/Models/ScriptInstrument.js: |
| (WebInspector.ScriptInstrument.prototype.startInstrumentation): |
| (WebInspector.ScriptInstrument.prototype.stopInstrumentation): |
| (WebInspector.ScriptInstrument): |
| * UserInterface/Models/ScriptTimelineRecord.js: |
| (WebInspector.ScriptTimelineRecord.prototype.get profilePayload): |
| (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload): |
| (WebInspector.ScriptTimelineRecord): |
| (WebInspector.ScriptTimelineRecord.EventType.displayName): |
| * UserInterface/Models/Timeline.js: |
| (WebInspector.Timeline.prototype.refresh): |
| * UserInterface/Models/TimelineRecording.js: |
| (WebInspector.TimelineRecording.sourceCodeTimelinesSupported): |
| (WebInspector.TimelineRecording.prototype.timelineForRecordType): |
| (WebInspector.TimelineRecording.prototype.addRecord): |
| * UserInterface/Protocol/ScriptProfilerObserver.js: Copied from Source/WebInspectorUI/UserInterface/Models/ScriptInstrument.js. |
| (WebInspector.ScriptProfilerObserver.prototype.trackingStart): |
| (WebInspector.ScriptProfilerObserver.prototype.trackingUpdate): |
| (WebInspector.ScriptProfilerObserver.prototype.trackingComplete): |
| (WebInspector.ScriptProfilerObserver): |
| * UserInterface/Views/ScriptTimelineView.js: |
| (WebInspector.ScriptTimelineView): |
| (WebInspector.ScriptTimelineView.prototype._processPendingRecords): |
| (WebInspector.ScriptTimelineView.prototype._scriptTimelineRecordRefreshed): |
| * UserInterface/Views/TimelineRecordTreeElement.js: |
| (WebInspector.TimelineRecordTreeElement): |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WebInspector.TimelineTabContentView.isTabAllowed): |
| |
| 2015-12-17 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION (r193913): Popover covers completion suggestions |
| https://bugs.webkit.org/show_bug.cgi?id=152369 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| Swap popover and tooltip z-index ordering. |
| |
| 2015-12-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| REGRESSION: Web Inspector: console.dir(...) should force allowing object expansion |
| https://bugs.webkit.org/show_bug.cgi?id=152328 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WebInspector.ConsoleMessageView.prototype._formatParameter): |
| Propogate the force parameter down. |
| |
| 2015-12-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Improve copy of console messages with multiple arguments - console.log(obj1, obj2) |
| https://bugs.webkit.org/show_bug.cgi?id=152330 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WebInspector.ConsoleMessageView.prototype.toClipboardString): |
| Copy the inner text of the extra arguments list as well, for |
| console messages with multiple objects. Rearrange the sections |
| that, if there is a stack trace it comes at the end after |
| multiple arguments. If there is no stack trace, include the |
| location info next to the top line, before multiple arguments. |
| |
| 2015-12-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Improve copy of console message containing Array and Map output |
| https://bugs.webkit.org/show_bug.cgi?id=152329 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Introduce a real space in the content instead of style specific |
| margins so the existing copy/paste mechanism (innerText) |
| will have spaces between index/key and value. |
| |
| * UserInterface/Views/ObjectTreeArrayIndexTreeElement.css: |
| (.object-tree-array-index .index-name): Deleted. |
| * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js: |
| (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment): |
| (WebInspector.ObjectTreeArrayIndexTreeElement): |
| * UserInterface/Views/ObjectTreeMapEntryTreeElement.css: |
| (.object-tree-array-index.object-tree-map-entry > .titles > .title > .index-name): Deleted. |
| * UserInterface/Views/ObjectTreeMapEntryTreeElement.js: |
| (WebInspector.ObjectTreeMapEntryTreeElement.prototype.titleFragment): |
| (WebInspector.ObjectTreeMapEntryTreeElement): |
| * UserInterface/Views/ObjectTreeSetIndexTreeElement.js: |
| (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment): |
| (WebInspector.ObjectTreeSetIndexTreeElement): |
| |
| 2015-12-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Typing object literal in the console causes a parse error |
| https://bugs.webkit.org/show_bug.cgi?id=141737 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Provide a convenience in console evaluations for JSON object like input. |
| If the console input starts with '{' and ends with '}' wrap the input |
| in parenthesis to force evaluation as an expression. |
| |
| For example, input "{a:1}" would be convenience wrapped to "({a:1})" |
| and produce the expected object. This helps avoid the unusual treatment |
| of "{a:1}" as program containing a labeled statement, which is often |
| not what the user expects. And in more realistic cases, like "{a:1, b:2}", |
| produce a SyntaxError. |
| |
| * UserInterface/Controllers/RuntimeManager.js: |
| (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow): |
| Detect and convenience wrap the given expression. |
| |
| 2015-12-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Uncaught Exception View has undefined exception URL |
| https://bugs.webkit.org/show_bug.cgi?id=152327 |
| |
| Reviewed by Darin Adler. |
| |
| * UserInterface/Debug/UncaughtExceptionReporter.js: |
| (handleUncaughtException): |
| Use ErrorEvent's filename property, not url which is undefined. |
| |
| 2015-12-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Uncaught Exception: ReferenceError: Can't find variable: resolvedValue |
| https://bugs.webkit.org/show_bug.cgi?id=152326 |
| |
| Reviewed by Darin Adler. |
| |
| * UserInterface/Views/ObjectTreeBaseTreeElement.js: |
| (WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler): |
| This identifier is used later on, so assign it here. |
| |
| 2015-12-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Localize "global code" and "eval code" strings |
| https://bugs.webkit.org/show_bug.cgi?id=152313 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Models/CallFrame.js: |
| (WebInspector.CallFrame.fromPayload): |
| Localize the strings given to use from the backend. |
| |
| 2015-12-15 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Convert Sidebar classes to use View |
| https://bugs.webkit.org/show_bug.cgi?id=152274 |
| |
| Reviewed by Brian Burg. |
| |
| Updated Sidebar and SidebarPanel to inherit from View. Mostly mechanical changes. |
| Once the DetailsSection class family inherits from View (https://webkit.org/b/152269), |
| directly modifying a sidebar's 'contentView' element will rarely be necessary. |
| |
| * UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js: |
| (WebInspector.ApplicationCacheDetailsSidebarPanel): |
| |
| * UserInterface/Views/CSSStyleDetailsSidebarPanel.js: |
| (WebInspector.CSSStyleDetailsSidebarPanel): |
| (WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh): |
| (WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels): |
| Add/remove panels as subviews of the sidebar. |
| (WebInspector.CSSStyleDetailsSidebarPanel.prototype._filterDidChange): |
| |
| * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: |
| (WebInspector.DOMNodeDetailsSidebarPanel): |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WebInspector.DebuggerSidebarPanel): |
| (WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause): |
| |
| * UserInterface/Views/LayerTreeDetailsSidebarPanel.js: |
| (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildLayerInfoSection): |
| (WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection): |
| |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WebInspector.NavigationSidebarPanel): |
| (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline): |
| (WebInspector.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility): |
| |
| * UserInterface/Views/ProbeDetailsSidebarPanel.js: |
| (WebInspector.ProbeDetailsSidebarPanel.prototype.set inspectedProbeSets): |
| |
| * UserInterface/Views/ResourceDetailsSidebarPanel.js: |
| (WebInspector.ResourceDetailsSidebarPanel): |
| (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshURL): |
| (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection): |
| (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestDataSection): |
| |
| * UserInterface/Views/ScopeChainDetailsSidebarPanel.js: |
| (WebInspector.ScopeChainDetailsSidebarPanel): |
| (WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh.): |
| (WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh): |
| |
| * UserInterface/Views/SidebarPanel.js: |
| Inherit from View. |
| (WebInspector.SidebarPanel): |
| Replace the content element (the portion of the view excluding navigation |
| bars, filter bars, etc.) with a View object. A sidebar's content can be a mixture |
| of unwrapped DOM elements and View objects. For now, the content view's element |
| will be mutated directly, but once the DetailsSection class family inherits from |
| the View class the handling of details sections will be simplified. |
| (WebInspector.SidebarPanel.prototype.get contentView): |
| (WebInspector.SidebarPanel.prototype.shown): |
| (WebInspector.SidebarPanel.prototype.hidden): |
| (WebInspector.SidebarPanel.prototype.get contentElement): Deleted. |
| Replaced by WebInspector.SidebarPanel.prototype.get contentView. |
| |
| * UserInterface/Views/StyleDetailsPanel.js: |
| Inherit from View. |
| (WebInspector.StyleDetailsPanel): |
| (WebInspector.StyleDetailsPanel.prototype.get element): Deleted. |
| Defer to View.element getter. |
| |
| * UserInterface/Views/TimelineSidebarPanel.js: |
| (WebInspector.TimelineSidebarPanel.prototype._updateTimelineOverviewHeight): |
| |
| * UserInterface/Views/VisualStyleDetailsPanel.js: |
| (WebInspector.VisualStyleDetailsPanel): |
| (WebInspector.VisualStyleDetailsPanel.prototype._updateSections): |
| |
| 2015-12-14 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Stack traces in console incorrectly show "(anonymous function)" for global code |
| https://bugs.webkit.org/show_bug.cgi?id=152280 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Images/Program.svg: Added. |
| * UserInterface/Images/gtk/Program.svg: Added. |
| Copied from TimelineRecordScriptEvaluated.svg. |
| |
| * UserInterface/Models/CallFrame.js: |
| (WebInspector.CallFrame): |
| (WebInspector.CallFrame.prototype.get programCode): |
| Add a new property to check if this call frame is in program code. |
| |
| (WebInspector.CallFrame.fromPayload): |
| Detect different sources of program code (global, eval, module). |
| |
| * UserInterface/Views/CallFrameIcons.css: |
| (.program-icon .icon): |
| * UserInterface/Views/CallFrameView.js: |
| (WebInspector.CallFrameView.iconClassNameForCallFrame): |
| Give program code the [S] global script icon like in profiles. |
| |
| 2015-12-14 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Copy message from console with a stack trace does not include source code locations |
| https://bugs.webkit.org/show_bug.cgi?id=152270 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WebInspector.ConsoleMessageView.prototype.toClipboardString): |
| When the the StackTrace was upgraded to a real collection of CallFrame |
| object's the CallFrame's got real SourceCodeLocation properties. |
| |
| 2015-12-13 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Make TimelineOverview's graph container a subview |
| https://bugs.webkit.org/show_bug.cgi?id=152235 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/TimelineOverview.js: |
| (WebInspector.TimelineOverview): |
| Create graph container subview. |
| (WebInspector.TimelineOverview.prototype._instrumentAdded): |
| Add overview to the graph container view. |
| (WebInspector.TimelineOverview.prototype._instrumentRemoved): |
| Remove overview from the graph container view. |
| (WebInspector.TimelineOverview.prototype.layout): |
| No longer necessary to manually lay out overview graphs. |
| (WebInspector.TimelineOverview.prototype._needsLayout): Deleted. |
| Removed dead code. |
| |
| 2015-12-12 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: CodeMirrorTokenTrackingController handles symbols in class definitions incorrectly |
| https://bugs.webkit.org/show_bug.cgi?id=152218 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Controllers/CodeMirrorTokenTrackingController.js: |
| (WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression): |
| Stop checking for object literal shorthand property if an open parenthesis is found. |
| This check became necessary with the introduction of ES6 class syntax. |
| |
| * UserInterface/Views/CodeMirrorAdditions.js: |
| Use localState when available, to prevent passing a state that doesn't define a tokenize property. |
| |
| 2015-12-12 Joseph Pecoraro <pecoraro@apple.com> |
| |
| REGRESSION (r191613): Web Inspector: Can't type spaces when editing DOM nodes |
| https://bugs.webkit.org/show_bug.cgi?id=152173 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/TimelineSidebarPanel.js: |
| (WebInspector.TimelineSidebarPanel): |
| Disable the keyboard shortcuts when they are created. They will be |
| enabled when the panel is shown / hidden. It doesn't really make sense |
| that these are on the sidebar panel instead of the tab, but things |
| will be changing in Timelines soon anyways so just fix this now. |
| |
| 2015-12-12 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: "Selected Element" should use sans-serif font, not monospace |
| https://bugs.webkit.org/show_bug.cgi?id=152212 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/ConsoleMessageView.css: |
| (.console-user-command.special-user-log > .console-message-text): |
| |
| 2015-12-11 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: When logging strings, detect stack traces and show them as StackTraceView |
| https://bugs.webkit.org/show_bug.cgi?id=149790 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Models/StackTrace.js: |
| (WebInspector.StackTrace.isLikelyStackTrace): Added. |
| |
| * UserInterface/Views/ConsoleMessageView.css: |
| (.console-message-extra-parameter .stack-trace): |
| Display stack trace view on the same line as a list bullet point from |
| console message extra parameter. |
| |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WebInspector.ConsoleMessageView.prototype._appendFormattedArguments): |
| Don't format with string substitutions for stack traces. E.g. there is |
| no need to replace %s with the next argument. |
| |
| (WebInspector.ConsoleMessageView.prototype._isStackTrace): Added. |
| (WebInspector.ConsoleMessageView.prototype._formatParameterAsString): |
| Detect stack traces and format them appropriately. |
| |
| 2015-12-10 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: debugger dashboard's switching arrows are positioned too close to the dashboard border |
| https://bugs.webkit.org/show_bug.cgi?id=151867 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/DashboardContainerView.css: |
| (.dashboard-container .advance-arrow): |
| |
| 2015-12-10 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: debugger popover should have source location link when showing function source |
| https://bugs.webkit.org/show_bug.cgi?id=151866 |
| |
| Reviewed by Brian Burg. |
| |
| Added source code location link to function popover header. |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails): |
| Create source code location link from response payload. |
| (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction): |
| |
| 2015-12-10 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: [Meta] Unify z-index values in Inspector's CSS |
| https://bugs.webkit.org/show_bug.cgi?id=151978 |
| |
| Introduce CSS variables for z-index due to recurring issues with incorrectly overlapping elements. |
| |
| From now on, all z-index values >= 64 must be defined as variables. |
| Values below 64 must not. |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| Introduce z-index variables. |
| |
| * UserInterface/Debug/UncaughtExceptionReporter.css: |
| (.sheet-container): |
| * UserInterface/Views/BoxModelDetailsSectionRow.css: |
| (.details-section .row.box-model .editing): |
| * UserInterface/Views/CompletionSuggestionsView.css: |
| (.completion-suggestions): |
| * UserInterface/Views/DashboardContainerView.css: |
| (.dashboard-container .advance-arrow): |
| * UserInterface/Views/DataGrid.css: |
| (.data-grid .resizer): |
| * UserInterface/Views/DetailsSection.css: |
| (.details-section > .header): |
| (.details-section .details-section > .header): |
| * UserInterface/Views/FindBanner.css: |
| (.find-banner): |
| (.find-banner > button.segmented:active): |
| * UserInterface/Views/Main.css: |
| (#docked-resizer): |
| (.message-text-view): |
| (.bouncy-highlight): |
| * UserInterface/Views/Popover.css: |
| (.popover): |
| * UserInterface/Views/Resizer.css: |
| (.resizer): |
| (.glass-pane-for-drag): |
| * UserInterface/Views/TimelineOverview.css: |
| (.timeline-overview > .scroll-container): |
| * UserInterface/Views/VisualStyleSelectorSection.css: |
| (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider): |
| |
| 2015-12-09 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: when a marked-dirty subview is attached to a parent View, dirtyDescendantsCount gets out of sync |
| https://bugs.webkit.org/show_bug.cgi?id=151876 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Base/Main.js: |
| Use root view singleton instead of creating it explicitly. |
| |
| * UserInterface/Views/View.js: |
| (WebInspector.View): |
| (WebInspector.View.rootView): |
| Singleton root view access. Lazily create and return a view backed |
| by the document's body element. |
| (WebInspector.View.prototype.isDescendantOf): |
| (WebInspector.View.prototype.insertSubviewBefore): |
| (WebInspector.View.prototype.removeSubview): |
| (WebInspector.View.prototype.didMoveToWindow): |
| Notify the view when it becomes, or is no longer, descended from the root view. |
| (WebInspector.View.prototype.didMoveToParent): |
| Notify the view when it's added to, or removed from, a parent view. |
| (WebInspector.View._scheduleLayoutForView): |
| (WebInspector.View._cancelScheduledLayoutForView): |
| (WebInspector.View.prototype.makeRootView): Deleted. |
| No longer needed. |
| (WebInspector.View.prototype.didAttach): Deleted. |
| (WebInspector.View.prototype.didDetach): Deleted. |
| Replaced by didMoveToParent. |
| |
| 2015-12-09 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: control whether to collect and dump protocol messages using a WebInspector.Setting |
| https://bugs.webkit.org/show_bug.cgi?id=151635 |
| |
| Reviewed by Timothy Hatcher. |
| |
| When closing and reopening the inspector, the setting for whether |
| to dump protocol messages should be persisted. Otherwise, enabling |
| dumping from the debug-only UI will miss the initial flood of |
| messages that are processed when the Inspector loads initial data. |
| |
| To support a persistent setting, and build some infrastructure for |
| more advanced uses of collected protocol messages, this patch adds |
| a new object to trace protocol events. It gets callbacks for each |
| and implements the console-dumping functionality previously baked in |
| to InspectorBackend. |
| |
| In follow-up patches, other protocol tracers will be added to save |
| protocol data to disk, marshall it to a higher inspection level, |
| or provide more fine-grained control over what is logged. |
| |
| This change moves Setting.js into the Base/ directory, |
| since it is used by Views, Models, and now Protocol classes. |
| |
| * UserInterface/Base/Setting.js: Renamed from Source/WebInspectorUI/UserInterface/Models/Setting.js. |
| (WebInspector.Setting): |
| (WebInspector.Setting.prototype.get name): |
| (WebInspector.Setting.prototype.get value): |
| (WebInspector.Setting.prototype.set value): |
| * UserInterface/Main.html: |
| * UserInterface/Protocol/InspectorBackend.js: |
| (InspectorBackendClass): |
| (InspectorBackendClass.prototype.set dumpInspectorProtocolMessages): |
| (InspectorBackendClass.prototype.get dumpInspectorProtocolMessages): |
| |
| We still want to support the legacy way to enable dumping: |
| `InspectorBackend.dumpInspectorProtocolMessages = true`. This |
| is because some tests always use it, and it's easier to set this |
| flag in a custom Bootstrap.js file than to configure the Setting. |
| |
| (InspectorBackendClass.prototype.set dumpInspectorTimeStats): |
| (InspectorBackendClass.prototype.get dumpInspectorTimeStats): |
| |
| We still want to support the legacy way to enable dumping: |
| `InspectorBackend.dumpInspectorTimeStats = true`. This is |
| because MessageDispatcher checks this flag for its logging. |
| |
| (InspectorBackendClass.prototype.set activeTracer): |
| (InspectorBackendClass.prototype.get activeTracer): |
| |
| Set the active tracer, finalizing and removing any active tracer |
| if one exists. If removing a custom tracer (setting to null), then |
| re-sync activeTracer with the automatic tracing Setting. |
| |
| (InspectorBackendClass.prototype.dispatch): |
| (InspectorBackendClass.prototype._startOrStopAutomaticTracing): |
| |
| Sync the Setting with activeTracer. If an custom tracer is active, |
| don't replace it with the automatic logging tracer. |
| |
| (InspectorBackendClass.prototype._sendCommandToBackendWithCallback): |
| (InspectorBackendClass.prototype._sendCommandToBackendExpectingPromise): |
| (InspectorBackendClass.prototype._sendMessageToBackend): |
| (InspectorBackendClass.prototype._dispatchResponse): |
| (InspectorBackendClass.prototype._dispatchEvent): |
| (InspectorBackendClass.prototype._flushPendingScripts): |
| * UserInterface/Protocol/LoggingProtocolTracer.js: Added. |
| (WebInspector.LoggingProtocolTracer): |
| (WebInspector.LoggingProtocolTracer.prototype.set dumpMessagesToConsole): |
| (WebInspector.LoggingProtocolTracer.prototype.get dumpMessagesToConsole): |
| (WebInspector.LoggingProtocolTracer.prototype.set dumpTimingDataToConsole): |
| (WebInspector.LoggingProtocolTracer.prototype.get dumpTimingDataToConsole): |
| (WebInspector.LoggingProtocolTracer.prototype.logFrontendException): |
| (WebInspector.LoggingProtocolTracer.prototype.logProtocolError): |
| (WebInspector.LoggingProtocolTracer.prototype.logFrontendRequest): |
| (WebInspector.LoggingProtocolTracer.prototype.logWillHandleResponse): |
| (WebInspector.LoggingProtocolTracer.prototype.logDidHandleResponse): |
| (WebInspector.LoggingProtocolTracer.prototype.logWillHandleEvent): |
| (WebInspector.LoggingProtocolTracer.prototype.logDidHandleEvent): |
| (WebInspector.LoggingProtocolTracer.prototype._processEntry): |
| * UserInterface/Protocol/ProtocolTracer.js: Added. |
| (WebInspector.ProtocolTracer.prototype.logStarted): |
| (WebInspector.ProtocolTracer.prototype.logFrontendException): |
| (WebInspector.ProtocolTracer.prototype.logProtocolError): |
| (WebInspector.ProtocolTracer.prototype.logFrontendRequest): |
| (WebInspector.ProtocolTracer.prototype.logWillHandleResponse): |
| (WebInspector.ProtocolTracer.prototype.logDidHandleResponse): |
| (WebInspector.ProtocolTracer.prototype.logWillHandleEvent): |
| (WebInspector.ProtocolTracer.prototype.logDidHandleEvent): (WebInspector.ProtocolTracer.prototype.logFinished): |
| (WebInspector.ProtocolTracer): |
| * UserInterface/Test.html: |
| |
| 2015-12-09 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: zoom with Ctrl +/- doesn't work correctly when inspector is docked |
| https://bugs.webkit.org/show_bug.cgi?id=152076 |
| |
| Reviewed by Timothy Hatcher. |
| |
| When computing the new width or height of the inspector, take the zoom level into |
| account. window.inner{Width,Height} are in document pixels, but we need to specify |
| device pixels to InspectorFrontendHost. |
| |
| * UserInterface/Base/Main.js: |
| |
| 2015-12-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Workaround arrow function issue in TimelineOverviewGraph.js |
| https://bugs.webkit.org/show_bug.cgi?id=152031 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/TimelineOverviewGraph.js: |
| (WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout): |
| Workaround an existing arrow function issue by moving off of arrow functions here. |
| |
| 2015-12-08 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Add a hidden property to TreeOutline |
| https://bugs.webkit.org/show_bug.cgi?id=152014 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| Removed static property for "hidden" CSS class. No longer used. |
| (WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline): |
| Fixed bug in order of visibleTreeOutlines add/remove. |
| (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline): |
| |
| * UserInterface/Views/TimelineSidebarPanel.js: |
| (WebInspector.TimelineSidebarPanel): |
| (WebInspector.TimelineSidebarPanel.prototype._changeViewMode): |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WebInspector.TreeOutline): |
| (WebInspector.TreeOutline.prototype.get hidden): |
| (WebInspector.TreeOutline.prototype.set hidden): |
| Added hidden property, set DOM element hidden attribute. |
| (WebInspector.TreeElement.prototype.set hidden): |
| Remove CSS class, set DOM element hidden attribute. |
| (WebInspector.TreeElement.prototype._attach): |
| (WebInspector.TreeElement.prototype.expand): |
| |
| 2015-12-08 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Global Breakpoints should always be visible |
| https://bugs.webkit.org/show_bug.cgi?id=151066 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WebInspector.DebuggerSidebarPanel): |
| Turn off filtering for Global Breakpoints elements. |
| |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WebInspector.NavigationSidebarPanel.prototype.suppressFilteringOnTreeElements): |
| Allow filtering to be turned off for specific tree elements. |
| (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement): |
| Make element visible if filtering suppressed. |
| (WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults): |
| Visible elements with filtering disabled aren't considered when |
| showing/hiding the empty content placeholder. |
| |
| 2015-12-07 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: Uncaught Exception page should have better styles and handle more error cases |
| https://bugs.webkit.org/show_bug.cgi?id=151923 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Restructure the Uncaught Exception reporting page to act more like |
| a modal sheet. Distinguish between uncaught exceptions before and |
| after the frontend is initially loaded. If the frontend is loaded, |
| add a clickable link that dismisses the sheet and ignores the error. |
| If the inspector finished loading, then only show at most one |
| exception at a time, since subsequent interactions can cause spurious |
| errors when the sheet is active. |
| |
| Split existing code into multiple functions so it's easier to follow. |
| Add miscellaneous guards against internal corruption and weird cases. |
| |
| * UserInterface/Base/Main.js: |
| (WebInspector.contentLoaded): Store the flag on the global object |
| in case WebInspector becomes shadowed or otherwise unusable. |
| |
| * UserInterface/Debug/UncaughtExceptionReporter.css: Renamed from Source/WebInspectorUI/UserInterface/Debug/CatchEarlyErrors.css. |
| (div.sheet-container): |
| (div.uncaught-exception-sheet): |
| (div.uncaught-exception-sheet a): |
| (div.uncaught-exception-sheet a:active): |
| (div.uncaught-exception-sheet h2): |
| (div.uncaught-exception-sheet h1 > img): |
| (div.uncaught-exception-sheet h2 > img): |
| (div.uncaught-exception-sheet dl): |
| (div.uncaught-exception-sheet dt): |
| (div.uncaught-exception-sheet dd): |
| (div.uncaught-exception-sheet ul): |
| (div.uncaught-exception-sheet li): |
| * UserInterface/Debug/UncaughtExceptionReporter.js: Renamed from CatchEarlyErrors.js. |
| (stopEventPropagation): Allow clicking whitelisted links on the sheet. |
| (blockEventHandlers): |
| (unblockEventHandlers): |
| (handleUncaughtException): |
| (dismissErrorSheet): |
| (createErrorSheet.insertWordBreakCharacters): |
| (createErrorSheet): |
| (handleLinkClick): |
| * UserInterface/Main.html: |
| * UserInterface/Protocol/MessageDispatcher.js: |
| (WebInspector.dispatchMessageFromBackend): Don't try to dispatch |
| messages from the backend when showing the error sheet. They will |
| probably fail, so suspend dispatching until the sheet is dismissed. |
| |
| 2015-12-06 Devin Rousso <dcrousso+webkit@gmail.com> |
| |
| Web Inspector: Regression (r192936) - changing selectors in the visual styles sidebar is broken |
| https://bugs.webkit.org/show_bug.cgi?id=151924 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/VisualStyleSelectorSection.js: |
| (WebInspector.VisualStyleSelectorSection): |
| (WebInspector.VisualStyleSelectorSection.prototype._selectorChanged): |
| Now uses an event listener instead of an "onselect" function. |
| |
| 2015-12-06 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Comparisons in setters should use the massaged value (" = x || 0/false/null/etc") |
| https://bugs.webkit.org/show_bug.cgi?id=151910 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Updated setters that use default values to convert falsy inputs to the default value |
| before compariing against the current value. |
| |
| * UserInterface/Models/TimelineMarker.js: |
| (WebInspector.TimelineMarker.prototype.set time): |
| Assert new value is a number. |
| |
| * UserInterface/Views/DataGrid.js: |
| (WebInspector.DataGridNode.prototype.set hidden): |
| (WebInspector.DataGridNode.prototype.set data): |
| Assert new value is of type object. Use shallowEqual compare before setting value. |
| |
| * UserInterface/Views/GeneralTreeElement.js: |
| (WebInspector.GeneralTreeElement.prototype.set classNames): |
| Use shallowEqual compare before setting value. |
| (WebInspector.GeneralTreeElement.prototype.set mainTitle): |
| (WebInspector.GeneralTreeElement.prototype.set subtitle): |
| (WebInspector.GeneralTreeElement.prototype.set status): |
| (WebInspector.GeneralTreeElement.prototype.set tooltipHandledSeparately): |
| |
| * UserInterface/Views/TimelineOverview.js: |
| (WebInspector.TimelineOverview.prototype.set startTime): |
| (WebInspector.TimelineOverview.prototype.set currentTime): |
| (WebInspector.TimelineOverview.prototype.set endTime): |
| (WebInspector.TimelineOverview.prototype.set scrollStartTime): |
| (WebInspector.TimelineOverview.prototype.set selectionStartTime): |
| Check current ruler selectionStartTime before setting value. |
| |
| * UserInterface/Views/TimelineOverviewGraph.js: |
| (WebInspector.TimelineOverviewGraph.prototype.set zeroTime): |
| (WebInspector.TimelineOverviewGraph.prototype.set startTime): |
| (WebInspector.TimelineOverviewGraph.prototype.set endTime): |
| (WebInspector.TimelineOverviewGraph.prototype.set currentTime): |
| |
| * UserInterface/Views/TimelineRuler.js: |
| (WebInspector.TimelineRuler): |
| (WebInspector.TimelineRuler.prototype.set allowsClippedLabels): |
| (WebInspector.TimelineRuler.prototype.set formatLabelCallback): |
| (WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection): |
| (WebInspector.TimelineRuler.prototype.set zeroTime): |
| (WebInspector.TimelineRuler.prototype.set startTime): |
| (WebInspector.TimelineRuler.prototype.set endTime): |
| (WebInspector.TimelineRuler.prototype.set secondsPerPixel): |
| (WebInspector.TimelineRuler.prototype.set selectionStartTime): |
| (WebInspector.TimelineRuler.prototype.set selectionEndTime): |
| (WebInspector.TimelineRuler.prototype.set duration): Deleted. |
| The ruler duration and "pinned" state are controlled by setting an end |
| time. Removed since it wasn't being used, and there shouldn't be two |
| ways to the exact same thing. |
| |
| * UserInterface/Views/TimelineView.js: |
| (WebInspector.TimelineView.prototype.set zeroTime): |
| (WebInspector.TimelineView.prototype.set startTime): |
| (WebInspector.TimelineView.prototype.set endTime): |
| |
| 2015-12-04 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r193486. |
| https://bugs.webkit.org/show_bug.cgi?id=151904 |
| |
| Causes Infinite Recursion in Timeline Recording (Requested by |
| JoePeck on #webkit). |
| |
| Reverted changeset: |
| |
| "Web Inspector: when a marked-dirty subview is attached to a |
| parent View, dirtyDescendantsCount gets out of sync" |
| https://bugs.webkit.org/show_bug.cgi?id=151876 |
| http://trac.webkit.org/changeset/193486 |
| |
| 2015-12-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Uncaught Exception with Reload shortcut in JSContext Inspector |
| https://bugs.webkit.org/show_bug.cgi?id=151896 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Base/Main.js: |
| (WebInspector.contentLoaded): |
| Do not implicitly prevent default on these keyboard shortcuts |
| so we can system beep if we do not do anything. |
| |
| (WebInspector._reloadPage): |
| (WebInspector._reloadPageIgnoringCache): |
| Bail if there is no PageAgent without preventing default for |
| a beep system beep. Prevent default if we did something. |
| |
| 2015-12-04 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: when a marked-dirty subview is attached to a parent View, dirtyDescendantsCount gets out of sync |
| https://bugs.webkit.org/show_bug.cgi?id=151876 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/NewTabContentView.js: |
| (WebInspector.NewTabContentView.prototype._updateShownTabs): |
| Removed workaround added in https://bugs.webkit.org/show_bug.cgi?id=151594. |
| |
| * UserInterface/Views/View.js: |
| (WebInspector.View._scheduleLayoutForView): |
| Always perform a synchronous layout when a view that isn't descended from the |
| root view schedules a layout. |
| |
| 2015-12-04 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: support runtime registration of tab type associations |
| https://bugs.webkit.org/show_bug.cgi?id=151594 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| We want to add special tabs that only exist in engineering builds |
| for debugging purposes. Though the relevant models and views can be |
| put in the Debug/ directory to exclude them from production builds, |
| there's no way to register tabs conditionally at runtime; tabs are |
| hardcoded. |
| |
| This patch makes it possible to register new tab types at runtime. |
| First, WebInspector keeps a map of known, registered tab classes. |
| Details that were hardcoded before---whether to show in New Tab, |
| whether a tab can be instantiated given the active domains, UI text, |
| etc.---are now static methods on the base TabContentView or overidden |
| in its subclasses. Lastly, a public method allows code in Bootstrap.js |
| to register tabs at runtime. Doing so sends a notification so the |
| NewTabContentView can show the newly available tab item. |
| |
| * UserInterface/Base/Main.js: |
| (WebInspector.contentLoaded): |
| (WebInspector.isTabTypeAllowed): |
| (WebInspector.knownTabClasses): Added, used by NewTabContentView. |
| (WebInspector._createTabContentViewForType): Renamed from _tabContentViewForType. |
| (WebInspector._rememberOpenTabs): |
| (WebInspector._updateNewTabButtonState): |
| (WebInspector._tryToRestorePendingTabs): Added. |
| |
| Whenever a new tab is registered, try to restore pending tabs, since |
| an extra tab won't be added initially when production tabs are added. |
| But, it could have been saved in the Setting for opened tabs. |
| |
| (WebInspector.showNewTabTab): |
| (WebInspector.isNewTabWithTypeAllowed): |
| (WebInspector.createNewTabWithType): |
| (WebInspector._tabContentViewForType): Deleted. |
| * UserInterface/Base/Object.js: |
| * UserInterface/Views/ConsoleTabContentView.js: |
| (WebInspector.ConsoleTabContentView): |
| (WebInspector.ConsoleTabContentView.tabInfo): Added. |
| * UserInterface/Views/DebuggerTabContentView.js: |
| (WebInspector.DebuggerTabContentView): |
| (WebInspector.DebuggerTabContentView.tabInfo): Added. |
| * UserInterface/Views/ElementsTabContentView.js: |
| (WebInspector.ElementsTabContentView): |
| (WebInspector.ElementsTabContentView.tabInfo): Added. |
| (WebInspector.ElementsTabContentView.isTabAllowed): Added. |
| * UserInterface/Views/NetworkTabContentView.js: |
| (WebInspector.NetworkTabContentView): |
| (WebInspector.NetworkTabContentView.tabInfo): Added. |
| (WebInspector.NetworkTabContentView.isTabAllowed): Added. |
| * UserInterface/Views/NewTabContentView.js: |
| |
| Keep a list of shown tab items, so we don't have to query the DOM |
| to update enabled/disabled state. Put tree construction inside a |
| layout() override and dirty the view whenever known tab types change. |
| |
| (WebInspector.NewTabContentView): |
| (WebInspector.NewTabContentView.tabInfo): Added. |
| (WebInspector.NewTabContentView.isEphemeral): Added. |
| (WebInspector.NewTabContentView.shouldSaveTab): Added. |
| (WebInspector.NewTabContentView.prototype.layout): Added. |
| (WebInspector.NewTabContentView.prototype._updateShownTabs): Added. |
| (WebInspector.NewTabContentView.prototype._allowableTabTypes): |
| (WebInspector.NewTabContentView.prototype._updateTabItems): |
| (WebInspector.NewTabContentView.prototype.get tabItemElements): Deleted. |
| * UserInterface/Views/ResourcesTabContentView.js: |
| (WebInspector.ResourcesTabContentView): |
| (WebInspector.ResourcesTabContentView.tabInfo): Added. |
| * UserInterface/Views/SearchTabContentView.js: |
| (WebInspector.SearchTabContentView): |
| (WebInspector.SearchTabContentView.tabInfo): Added. |
| (WebInspector.SearchTabContentView.isEphemeral): Added. |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WebInspector.SettingsTabContentView.isTabAllowed): Added. |
| (WebInspector.SettingsTabContentView.shouldSaveTab): Added. |
| * UserInterface/Views/StorageTabContentView.js: |
| (WebInspector.StorageTabContentView): |
| (WebInspector.StorageTabContentView.tabInfo): Added. |
| (WebInspector.StorageTabContentView.isTabAllowed): Added. |
| * UserInterface/Views/TabBrowser.js: |
| (WebInspector.TabBrowser.showTabForContentView): |
| |
| Add a workaround for <https://webkit.org/b/151876>. This bug is |
| revealed by the changes to NewTabContentView in this patch. |
| |
| * UserInterface/Views/TabContentView.js: |
| (WebInspector.TabContentView.isTabAllowed): Added. |
| (WebInspector.TabContentView.isEphemeral): Added. |
| (WebInspector.TabContentView.shouldSaveTab): Added. |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WebInspector.TimelineTabContentView): |
| (WebInspector.TimelineTabContentView.tabInfo): Added. |
| (WebInspector.TimelineTabContentView.isTabAllowed): Added. |
| |
| 2015-12-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Remove untested and unused Worker inspection |
| https://bugs.webkit.org/show_bug.cgi?id=151848 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js: |
| * Versions/Inspector-iOS-7.0.json: |
| * Versions/Inspector-iOS-8.0.json: |
| * Versions/Inspector-iOS-9.0.json: |
| Since this was untested in older releases as well, remove |
| the protocol interfaces for legacy versions. |
| |
| 2015-12-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Specifically Identify the Global Lexical Environment Scope |
| https://bugs.webkit.org/show_bug.cgi?id=151828 |
| |
| Reviewed by Brian Burg. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload): |
| * UserInterface/Models/ScopeChainNode.js: |
| * UserInterface/Views/ScopeChainDetailsSidebarPanel.js: |
| (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection): |
| Include a new scope type and give it a localized string. |
| |
| 2015-12-03 Anders Carlsson <andersca@apple.com> |
| |
| Remove Objective-C GC support |
| https://bugs.webkit.org/show_bug.cgi?id=151819 |
| rdar://problem/23746991 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2015-12-03 Matt Baker <mattbaker@apple.com> |
| |
| Uncaught Exception in Web Inspector: TypeError: null is not an object (evaluating 'dataGridNode.element.classList') |
| https://bugs.webkit.org/show_bug.cgi?id=151790 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/DataGrid.js: |
| (WebInspector.DataGridNode): |
| (WebInspector.DataGridNode.prototype.get hidden): |
| (WebInspector.DataGridNode.prototype.set hidden): |
| Make hidden a property, so it can be set before the grid node's DOM element exists. |
| (WebInspector.DataGridNode.prototype.get selectable): |
| (WebInspector.DataGridNode.prototype.get element): |
| Add hidden style, if needed, when element is created. |
| |
| * UserInterface/Views/TreeOutlineDataGridSynchronizer.js: |
| (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementVisibilityDidChange): |
| (WebInspector.TreeOutlineDataGridSynchronizer): |
| Don't access the grid node's element directly, since it may not exist yet. |
| |
| 2015-12-02 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Handle YieldExpressions in the ScriptSyntaxTree |
| https://bugs.webkit.org/show_bug.cgi?id=151730 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Models/NativeFunctionParameters.js: |
| Add the Generator API. |
| |
| * UserInterface/Models/ScriptSyntaxTree.js: |
| (WebInspector.ScriptSyntaxTree.prototype._recurse): |
| (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree): |
| Handle YieldExpressions. |
| |
| 2015-12-01 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: TreeOutline should just dispatch events via WebInspector.Object |
| https://bugs.webkit.org/show_bug.cgi?id=148067 |
| |
| Reviewed by Timothy Hatcher. |
| |
| TreeOutline now dispatches most events via WebInspector.Object. The onselect and |
| ondeselect callbacks are replaced by a SelectionDidChange event, which includes |
| both the selected and deselected elements in its event data. The onexpand and oncollapse |
| callbacks are replaced by an ElementDisclosureDidChange event. This is consistent with the |
| behavior of onhidden, which had no corresponding onvisible callback. |
| |
| Alas, TimelineView and TreeOutlineDataGridSynchronizer depended on the order in which |
| TreeOutline.onselect callbacks were chained together. The synchronizer added its |
| callback after the timeline view, which ensured that the tree and grid were in sync |
| before the view handled onselect and dispatched a SelectionPathComponentsDidChange. |
| The change notification causes the view's path components to be read, and timeline |
| views need the grid selection to be in a valid state to build path components. |
| |
| This is addressed by having timeline views dispatch SelectionPathComponentsDidChange |
| events when the grid selection changes, instead of the tree selection. The change |
| required that the synchronizer no longer suppress notifications when selecting grid nodes. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WebInspector.DebuggerSidebarPanel): |
| (WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange): |
| (WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection): |
| |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline): |
| (WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged): |
| |
| * UserInterface/Views/NetworkGridContentView.js: |
| (WebInspector.NetworkGridContentView): |
| (WebInspector.NetworkGridContentView.prototype._treeSelectionDidChange): |
| |
| * UserInterface/Views/ResourceSidebarPanel.js: |
| (WebInspector.ResourceSidebarPanel): |
| (WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange): |
| (WebInspector.ResourceSidebarPanel.prototype._treeElementSelected): Deleted. |
| |
| * UserInterface/Views/ScopeChainDetailsSidebarPanel.js: |
| (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection): |
| (WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection): |
| (WebInspector.ScopeChainDetailsSidebarPanel.prototype._treeElementAdded): |
| (WebInspector.ScopeChainDetailsSidebarPanel.prototype._treeElementDisclosureDidChange): |
| (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeExpandHandler): Deleted. |
| (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeCollapseHandler): Deleted. |
| |
| * UserInterface/Views/SearchSidebarPanel.js: |
| (WebInspector.SearchSidebarPanel): |
| (WebInspector.SearchSidebarPanel.prototype._treeSelectionDidChange): |
| (WebInspector.SearchSidebarPanel.prototype._treeElementSelected): Deleted. |
| |
| * UserInterface/Views/StorageSidebarPanel.js: |
| (WebInspector.StorageSidebarPanel): |
| (WebInspector.StorageSidebarPanel._treeSelectionDidChange): |
| |
| * UserInterface/Views/TimelineDataGrid.js: |
| (WebInspector.TimelineDataGrid.prototype._createPopoverContent): |
| (WebInspector.TimelineDataGrid.prototype._popoverCallStackTreeSelectionDidChange): |
| (WebInspector.TimelineDataGrid): |
| |
| * UserInterface/Views/TimelineSidebarPanel.js: |
| (WebInspector.TimelineSidebarPanel): |
| (WebInspector.TimelineSidebarPanel.prototype._recordingsTreeSelectionDidChange): |
| (WebInspector.TimelineSidebarPanel.prototype._timelinesTreeSelectionDidChange): |
| (WebInspector.TimelineSidebarPanel.prototype._timelinesTreeElementSelected): Deleted. |
| |
| * UserInterface/Views/TimelineView.js: |
| (WebInspector.TimelineView): |
| (WebInspector.TimelineView.prototype._treeSelectionDidChange): |
| (WebInspector.TimelineView.prototype.treeElementSelected): |
| Don't dispatch SelectionPathComponentsDidChange. Timeline views already do this |
| in response to grid selection events. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WebInspector.TreeOutline.prototype.appendChild): |
| (WebInspector.TreeOutline.prototype.insertChild): |
| (WebInspector.TreeOutline.prototype.removeChildAtIndex): |
| (WebInspector.TreeOutline.prototype.removeChildren): |
| (WebInspector.TreeOutline.prototype.removeChildrenRecursive): |
| (WebInspector.TreeOutline.prototype._treeElementDidChange): |
| (WebInspector.TreeElement.prototype.set hidden): |
| (WebInspector.TreeElement.prototype.collapse): |
| (WebInspector.TreeElement.prototype.expand): |
| (WebInspector.TreeElement.prototype.select): |
| (WebInspector.TreeElement.prototype.deselect): |
| (WebInspector.TreeElement.prototype.get childrenListElement): Deleted. |
| Removed dead code. |
| |
| * UserInterface/Views/TreeOutlineDataGridSynchronizer.js: |
| (WebInspector.TreeOutlineDataGridSynchronizer): |
| (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeSelectionDidChange): |
| (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementAdded): |
| (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementRemoved): |
| (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementDisclosureDidChange): |
| (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementVisibilityDidChange): |
| (WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onadd): Deleted. |
| (WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onremove): Deleted. |
| (WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onexpand): Deleted. |
| (WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.oncollapse): Deleted. |
| (WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onhidden): Deleted. |
| (WebInspector.TreeOutlineDataGridSynchronizer.treeOutline.onselect): Deleted. |
| (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementSelected): Deleted. |
| (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementExpanded): Deleted. |
| (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementCollapsed): Deleted. |
| (WebInspector.TreeOutlineDataGridSynchronizer.prototype._treeElementHiddenChanged): Deleted. |
| |
| * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js: |
| (WebInspector.VisualStyleCommaSeparatedKeywordEditor): |
| (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeSelectionDidChange): |
| (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype._treeElementSelected): Deleted. |
| |
| 2015-12-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Timestamp in Tooltip of Event Markers is incorrect |
| https://bugs.webkit.org/show_bug.cgi?id=151722 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/TimelineRuler.js: |
| (WebInspector.TimelineRuler.prototype.addMarker): |
| Convert the marker's time, to be relative to the start of the recording. |
| |
| 2015-12-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Unreviewed common typo fix "occurance" => "occurrence". |
| |
| * Scripts/combine-resources.pl: |
| (concatenateFiles): |
| |
| 2015-12-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Spacebar to toggle Timeline recording doesn't work in Timeline tab after reloading the page |
| https://bugs.webkit.org/show_bug.cgi?id=151530 |
| |
| Reviewed by Timothy Hatcher. |
| |
| If reloading the page caused the console to clear, that was triggering |
| the console prompt to be focused. When the console prompt is focused, |
| keyboard input like Spacebar, was just inputing characters instead of |
| triggering the keyboard shortcut that was expected. |
| |
| This also means that console.clear() in the inspected page would cause |
| the inspector to focus the console. That is unexpected as well. |
| |
| Focusing the console prompt whenever the console log is cleared |
| is not ideal. If we do want to focus the prompt the caller should |
| make that determination, not clear. |
| |
| * UserInterface/Controllers/JavaScriptLogViewController.js: |
| (WebInspector.JavaScriptLogViewController.prototype.clear): |
| |
| 2015-12-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Update Timeline UI based on the Instruments in the Active Recording |
| https://bugs.webkit.org/show_bug.cgi?id=151374 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight): |
| Modernize as I was in this code while looking into this patch. |
| |
| * UserInterface/Views/TimelineSidebarPanel.css: |
| (.sidebar > .panel.navigation.timeline > .title-bar.timeline-events): Deleted. |
| (.sidebar > .panel.navigation.timeline > .timelines-content): Deleted. |
| These defaults are no longer necessary, the UI overrides them anyways. |
| |
| * UserInterface/Views/TimelineSidebarPanel.js: |
| (WebInspector.TimelineSidebarPanel): |
| Include both the basic and rendering frames toolbars. They will be |
| mutually exclusive based on if the FPSIntrument is available. |
| |
| (WebInspector.TimelineSidebarPanel.prototype._recordingSelected): |
| (WebInspector.TimelineSidebarPanel.prototype._clearInstruments): |
| When loading a new Recording clear the UI. |
| |
| (WebInspector.TimelineSidebarPanel.prototype._instrumentAdded): |
| (WebInspector.TimelineSidebarPanel.prototype._instrumentRemoved): |
| (WebInspector.TimelineSidebarPanel.prototype._addedFPSInstrument): |
| (WebInspector.TimelineSidebarPanel.prototype._removedFPSInstrument): |
| Handle toggling the toolbars when the FPS instrument is added/removed. |
| |
| (WebInspector.TimelineSidebarPanel.prototype._timelineCountChanged): |
| (WebInspector.TimelineSidebarPanel.prototype._updateTimelineOverviewHeight): |
| (WebInspector.TimelineSidebarPanel.prototype._changeViewMode): |
| Properly update the sidebar's understanding of the TimelineOverview size. |
| |
| 2015-12-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Initial support for variable timelines |
| https://bugs.webkit.org/show_bug.cgi?id=151372 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WebInspector.TimelineManager.defaultInstruments): |
| (WebInspector.TimelineManager.prototype._loadNewRecording): |
| Keep the status quo which is the same set of instruments for each recording. |
| |
| (WebInspector.TimelineManager.prototype.startCapturing): |
| (WebInspector.TimelineManager.prototype.stopCapturing): |
| Push responsibility of capturing to the Recording, which has a specific set |
| of instruments that know what they need to turn on an off from the backend. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Models/Instrument.js: Added. |
| (WebInspector.Instrument): |
| (WebInspector.Instrument.startLegacyTimelineAgent): |
| (WebInspector.Instrument.stopLegacyTimelineAgent): |
| (WebInspector.Instrument.prototype.get timelineRecordType): |
| (WebInspector.Instrument.prototype.startInstrumentation): |
| (WebInspector.Instrument.prototype.stopInstrumentation): |
| New class representing something that can be turned on and off |
| from the backend and produces a set of Timeline record types. |
| Currently instruments are 1-to-1 to a Timeline type. |
| |
| * UserInterface/Models/LayoutInstrument.js: Added. |
| (WebInspector.LayoutInstrument.prototype.get timelineRecordType): |
| (WebInspector.LayoutInstrument): |
| * UserInterface/Models/NetworkInstrument.js: Added. |
| (WebInspector.NetworkInstrument.prototype.get timelineRecordType): |
| (WebInspector.NetworkInstrument.prototype.startInstrumentation): |
| (WebInspector.NetworkInstrument.prototype.stopInstrumentation): |
| (WebInspector.NetworkInstrument): |
| * UserInterface/Models/ScriptInstrument.js: Added. |
| (WebInspector.ScriptInstrument.prototype.get timelineRecordType): |
| (WebInspector.ScriptInstrument): |
| The default set of instruments. Currently they all enable the TimelineAgent, |
| so they share code to enable/disable in the base class to avoid duplication. |
| |
| * UserInterface/Models/FPSInstrument.js: Added. |
| (WebInspector.FPSInstrument): |
| (WebInspector.FPSInstrument.supported): |
| (WebInspector.FPSInstrument.prototype.get timelineRecordType): |
| Provide a "supported" static method and simplify other code that |
| checks whether or not RenderingFrames is available or not. |
| |
| |
| * UserInterface/Models/Timeline.js: |
| (WebInspector.Timeline.prototype.get displayName): Deleted. |
| (WebInspector.Timeline.prototype.get iconClassName): Deleted. |
| Move these to a View class, as this is primarily View logic. |
| |
| * UserInterface/Models/TimelineRecording.js: |
| (WebInspector.TimelineRecording): |
| (WebInspector.TimelineRecording.prototype.get instruments): |
| (WebInspector.TimelineRecording.prototype.start): |
| (WebInspector.TimelineRecording.prototype.stop): |
| (WebInspector.TimelineRecording.prototype.timelineForInstrument): |
| (WebInspector.TimelineRecording.prototype.addInstrument): |
| (WebInspector.TimelineRecording.prototype.removeInstrument): |
| (WebInspector.TimelineRecording.prototype.addEventMarker): |
| (WebInspector.TimelineRecording.prototype.addTimeline): Deleted. |
| (WebInspector.TimelineRecording.prototype.removeTimeline): Deleted. |
| A recording now has a set of Instruments and its own start/stop |
| which starts/stops its set of Instruments! Treat Instruments as |
| the variable property of a Recording instead of Timelines. |
| |
| * UserInterface/Views/TimelineOverview.js: |
| (WebInspector.TimelineOverview): |
| (WebInspector.TimelineOverview.prototype._instrumentAdded): |
| (WebInspector.TimelineOverview.prototype._instrumentRemoved): |
| (WebInspector.TimelineOverview.prototype._timelineAdded): Deleted. |
| (WebInspector.TimelineOverview.prototype._timelineRemoved): Deleted. |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WebInspector.TimelineRecordingContentView): |
| (WebInspector.TimelineRecordingContentView.prototype._instrumentAdded): |
| (WebInspector.TimelineRecordingContentView.prototype._instrumentRemoved): |
| (WebInspector.TimelineRecordingContentView.prototype._timelineAdded): Deleted. |
| (WebInspector.TimelineRecordingContentView.prototype._timelineRemoved): Deleted. |
| * UserInterface/Views/TimelineSidebarPanel.js: |
| (WebInspector.TimelineSidebarPanel): |
| (WebInspector.TimelineSidebarPanel.displayNameForTimeline): |
| (WebInspector.TimelineSidebarPanel.iconClassNameForTimeline): |
| (WebInspector.TimelineSidebarPanel.prototype.updateFrameSelection): |
| (WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie): |
| (WebInspector.TimelineSidebarPanel.prototype._recordingSelected): |
| (WebInspector.TimelineSidebarPanel.prototype._instrumentAdded): |
| (WebInspector.TimelineSidebarPanel.prototype._instrumentRemoved): |
| (WebInspector.TimelineSidebarPanel.prototype._changeViewMode): |
| (WebInspector.TimelineSidebarPanel.prototype._timelineAdded): Deleted. |
| (WebInspector.TimelineSidebarPanel.prototype._timelineRemoved): Deleted. |
| Update all TimelineAdded/TimelineRemoved clients to instead check |
| InstrumentAdded/InstrumentRemoved. Immediately convert from an Instrument |
| to a Timeline to keep the patch simple. |
| |
| 2015-12-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Broken Inspector when resources are minified |
| https://bugs.webkit.org/show_bug.cgi?id=151711 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * Scripts/combine-resources.pl: |
| (concatenateFiles): |
| Provide a way to just strip resources matches a pattern. |
| |
| * Scripts/copy-user-interface-resources.pl: |
| Strip "Debug/" resources before combining / minifying others. |
| |
| * UserInterface/Views/View.js: |
| (WebInspector.View.prototype.makeRootView): |
| (WebInspector.View.prototype.didDetach): |
| Address warnings from the console.assert stripping phase |
| for console.assert statements lacking a trailing semicolon. |
| |
| 2015-11-30 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: show something useful when the inspector frontend fails to load |
| https://bugs.webkit.org/show_bug.cgi?id=151643 |
| |
| Reviewed by Timothy Hatcher. |
| |
| When a parse error or other early error happens before the inspector |
| is fully loaded, we can't use the second-level inspector to tell what's |
| going on. It would be better to catch any early errors and list them. |
| |
| This patch adds an error page that shows the early errors that happened |
| during loading. It provides a list of errors, a link to reload the |
| inspector, and a link to submit a pre-filled bug report about the error. |
| |
| For now, this page only shows up in engineering builds because it's |
| located in the Debug/ directory. We can move it later when it works |
| better in all cases. Follow-up patches can address smaller issues, |
| such as the transparent title bar and broken text selection. |
| |
| * UserInterface/Debug/CatchEarlyErrors.css: Added. |
| * UserInterface/Debug/CatchEarlyErrors.js: Added. |
| * UserInterface/Main.html: |
| * UserInterface/Main.js: Abort setting up the UI if something happened. |
| |
| 2015-11-30 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: delete-by-word and similar shortcuts should add text to the WebCore kill ring |
| https://bugs.webkit.org/show_bug.cgi?id=151312 |
| |
| Reviewed by Darin Adler. |
| |
| Add support for other kill ring-eligible keybindinsg, such as |
| deleting by word, group, or line forwards and backwards. |
| |
| * UserInterface/Controllers/CodeMirrorTextKillController.js: |
| (WebInspector.CodeMirrorTextKillController): |
| (WebInspector.CodeMirrorTextKillController.prototype._handleTextKillCommand): Renamed from _handleKillLine. |
| |
| Parameterize the function so it can handle any keybinding and |
| command. Take a kill ring insertion mode argument, too. |
| |
| (WebInspector.CodeMirrorTextKillController.prototype._handleTextChange): |
| |
| Add some special casing for changes received from Delete Line |
| (Cmd-D) so the right text is added to the kill ring. Thread the |
| kill ring insertion mode to the frontend host call. |
| |
| (WebInspector.CodeMirrorTextKillController.prototype._handleKillLine): Deleted. |
| |
| 2015-11-29 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: Add context menu item to Reload the Inspector |
| https://bugs.webkit.org/show_bug.cgi?id=141742 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Add a global context menu and global shortcut (Cmd-Opt-Shift-R) to |
| reload the Web Inspector frontend without closing the browser. |
| |
| This should make it possible to more quickly fix typos, small nits, |
| etc. without having to relaunch. It might also make state |
| restoration bugs more visible in engineering builds, since there |
| is hardly any delay between seeing the old and reloaded frontends. |
| |
| Note that this functionality reloads scripts from the configuration's |
| build directory, so you still need to "build" WebInspectorUI to ensure |
| that any changed files are properly minified and staged. |
| |
| * UserInterface/Base/Main.js: |
| (WebInspector.unlocalizedString): |
| |
| Added. Make it obvious when strings are intentionally not localized. |
| |
| (WebInspector._contextMenuRequested): |
| |
| If the "Show Debug UI" setting is available and true, add |
| a global "Reload Web Inspector" menu item to every context |
| menu. Otherwise, don't eagerly create a context menu. |
| * UserInterface/Debug/Bootstrap.js: Add Cmd-Opt-Shift-R shortcut. |
| |
| 2015-11-29 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: allow multiple UI components to add menu items upon getting a "contextmenu" event |
| https://bugs.webkit.org/show_bug.cgi?id=151629 |
| |
| Reviewed by Timothy Hatcher. |
| |
| The existing Context Menu system assumes that only one UI component |
| will need to provide context menu items. But in some scenarios, there |
| are multiple UI components that could provide relevant menu items. For |
| example, right-clicking on an DOM element in the console should show |
| menu items relevant to 1) the DOM element, 2) the console in general, |
| and 3) global menu items. Existing code shows menu items provided by |
| the first object that handles the event and calls ContextMenu.show(). |
| |
| This patch changes behavior so that a context menu can be built up |
| by multiple 'contextmenu' event handlers. A ContextMenu instance is |
| hidden on the 'contextmenu' event object; client code calls a |
| factory method that digs out this existing context menu or creates a |
| new one as needed. To actually show the context menu through the |
| InspectorFrontendHost methods, the top-level app controller adds a |
| bubbling listener for 'contextmenu' and shows the event's context |
| menu if one has been created. |
| |
| Along the way, do some cleanup. Do s/var/let/, arrowize some functions, |
| use Array.{map,some}, and simplify some other code as a result. |
| |
| No new tests yet, since we can't trigger context menu easily from |
| an inspector test. All affected context menus were manually verified. |
| |
| * UserInterface/Base/Main.js: |
| (WebInspector.contentLoaded): |
| * UserInterface/Controllers/BreakpointPopoverController.js: |
| (WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems): |
| (WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.editBreakpoint): Deleted. |
| (WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.removeBreakpoint): Deleted. |
| (WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.toggleBreakpoint): Deleted. |
| (WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.toggleAutoContinue): Deleted. |
| (WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems.revealOriginalSourceCodeLocation): Deleted. |
| * UserInterface/Views/BreakpointTreeElement.js: |
| (WebInspector.BreakpointTreeElement.prototype.oncontextmenu): |
| * UserInterface/Views/CSSStyleDeclarationSection.js: |
| * UserInterface/Views/ContextMenu.js: |
| (WebInspector.ContextMenuItem.prototype._buildDescriptor): |
| (WebInspector.ContextMenuItem): |
| (WebInspector.ContextSubMenuItem.prototype.appendItem): |
| (WebInspector.ContextSubMenuItem.prototype.appendSubMenuItem): |
| (WebInspector.ContextSubMenuItem.prototype.appendCheckboxItem): |
| (WebInspector.ContextSubMenuItem.prototype._pushItem): |
| (WebInspector.ContextSubMenuItem.prototype._buildDescriptor): |
| (WebInspector.ContextSubMenuItem): |
| (WebInspector.ContextMenu.createFromEvent): |
| (WebInspector.ContextMenu.prototype.show): |
| (WebInspector.ContextMenu.prototype.handleEvent): |
| (WebInspector.ContextMenu.prototype._buildDescriptor): |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WebInspector.DOMTreeOutline.prototype._contextMenuEventFired): |
| (WebInspector.DOMTreeOutline.prototype._populateContextMenu.logElement): |
| (WebInspector.DOMTreeOutline.prototype._populateContextMenu): |
| * UserInterface/Views/DataGrid.js: |
| (WebInspector.DataGrid.prototype._contextMenuInDataTable): |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement): |
| (WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement.removeAllResourceBreakpoints): Deleted. |
| (WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement.toggleAllResourceBreakpoints): Deleted. |
| * UserInterface/Views/LogContentView.js: |
| (WebInspector.LogContentView.prototype._handleContextMenuEvent): |
| * UserInterface/Views/ObjectPreviewView.js: |
| (WebInspector.ObjectPreviewView.prototype._contextMenuHandler): |
| (WebInspector.ObjectPreviewView): |
| * UserInterface/Views/ObjectTreeBaseTreeElement.js: |
| (WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler): |
| (WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject): |
| (WebInspector.ObjectTreeBaseTreeElement): |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu): |
| (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.continueToLocation): Deleted. |
| (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.addBreakpoint): Deleted. |
| (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.revealInSidebar): Deleted. |
| (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.removeBreakpoints): Deleted. |
| (WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu.toggleBreakpoints): Deleted. |
| * UserInterface/Views/TabBarItem.js: |
| (WebInspector.TabBarItem.prototype._handleContextMenuEvent): |
| (WebInspector.TabBarItem): |
| (WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeTab): Deleted. |
| (WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeOtherTabs): Deleted. |
| * UserInterface/Views/TimelineSidebarPanel.js: |
| (WebInspector.TimelineSidebarPanel.prototype._contextMenuNavigationBarOrStatusBar): |
| (WebInspector.TimelineSidebarPanel.prototype._contextMenuNavigationBarOrStatusBar.toggleReplayInterface): Deleted. |
| * UserInterface/Views/Toolbar.js: |
| (WebInspector.Toolbar.prototype._handleContextMenuEvent): |
| * UserInterface/Views/VisualStyleSelectorTreeItem.js: |
| (WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent): |
| |
| 2015-11-28 Devin Rousso <dcrousso+webkit@gmail.com> |
| |
| Web Inspector: Styles sidebar placeholder is misaligned |
| https://bugs.webkit.org/show_bug.cgi?id=151638 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/CSSStyleDeclarationTextEditor.css: |
| (.css-style-text-editor > .CodeMirror .CodeMirror-placeholder): |
| |
| 2015-11-28 Devin Rousso <dcrousso+webkit@gmail.com> |
| |
| Web Inspector: REGRESSION: "Duplicate Selector" context menu item doesn't work |
| https://bugs.webkit.org/show_bug.cgi?id=151628 |
| |
| Reviewed by Brian Burg. |
| |
| Merged the two "add rule" functions inside DOMNodeStyles to create a |
| new rule with the given selector and use the generated best selector |
| for that node otherwise. This also preserves all fallbacks across all |
| functions for creating new CSS rules. |
| |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WebInspector.DOMNodeStyles.prototype.addEmptyRule): Deleted. |
| (WebInspector.DOMNodeStyles.prototype.addRuleWithSelector): Deleted. |
| (WebInspector.DOMNodeStyles.prototype.addRule): |
| Creates a new CSS rule using either the provided selector or the best |
| selector for the current node. |
| |
| * UserInterface/Views/CSSStyleDeclarationSection.js: |
| (WebInspector.CSSStyleDeclarationSection.prototype._handleContextMenuEvent): |
| * UserInterface/Views/RulesStyleDetailsPanel.js: |
| (WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked): |
| * UserInterface/Views/VisualStyleSelectorSection.js: |
| (WebInspector.VisualStyleSelectorSection.prototype._addNewRule): |
| |
| 2015-11-24 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: save Inspector's breakpoints to localStorage whenever they are modified |
| https://bugs.webkit.org/show_bug.cgi?id=151581 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Serialize all breakpoints to the "breakpoints" Setting in local storage |
| whenever any breakpoint model object is added, removed, or modified. |
| |
| Remove the old listener that attempted to save breakpoints on the |
| pagehide event. It did not fire in important scenarios like exiting |
| the browser via Cmd-Q or killing the process via Ctrl-C / SIGKILL. |
| |
| This is not expected to be a performance problem because most people |
| do not keep thousands of breakpoints active, and breakpoints are not |
| set very often. If it's a problem, we can mitigate it with coalescing. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WebInspector.DebuggerManager.prototype.addBreakpoint): |
| (WebInspector.DebuggerManager.prototype.removeBreakpoint): |
| (WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange): |
| (WebInspector.DebuggerManager.prototype._saveBreakpoints): |
| (WebInspector.DebuggerManager.prototype._inspectorClosing): Deleted. |
| |
| 2015-11-24 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: Cmd-1 to Cmd-9 shortcuts should select tabs by ordinal |
| https://bugs.webkit.org/show_bug.cgi?id=151577 |
| |
| Reviewed by Timothy Hatcher. |
| |
| The shortcuts only work if a tab at the specified ordinal exists. |
| |
| * UserInterface/Base/Main.js: |
| (WebInspector.contentLoaded): |
| |
| 2015-11-23 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: Add a keyboard shortcut to restore the default zoom level |
| https://bugs.webkit.org/show_bug.cgi?id=151237 |
| |
| Reviewed by Timothy Hatcher. |
| |
| The Cmd-0 shortcut matches the keybindings of Safari and other browsers. |
| |
| * UserInterface/Base/Main.js: |
| (WebInspector.contentLoaded): |
| |
| 2015-11-23 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: inspector settings should not be shared between different inspection levels |
| https://bugs.webkit.org/show_bug.cgi?id=151151 |
| |
| Reviewed by Timothy Hatcher. |
| |
| It's really annoying to have shared settings between Inspector^1 and Inspector^2, because |
| they are not designed to respond to external changes to local storage keys. As a result, |
| the two inspectors seemingly have different settings while both are open, but the settings |
| clobber each other depending on which inspector is closed first. On the next inspector |
| being opened, it has settings that reflect whichever inspector closed last. |
| |
| To fix this, alter the local storage key prefix to incude the inspection level when it is |
| greater than 1 (i.e., inspecting the inspector). The storage prefix becomes |
| "com.apple.WebInspector-${inspectionLevel}." in this case. |
| This is backwards-compatible for normal Inspector, who keeps the same storage prefix. |
| |
| Alternate approaches that were considered and abandoned: |
| |
| - Use separate WKWebSiteDataStores for each inspection level. This API (as it currently is) |
| does not support multiple on-disk storage locations. We don't want to add an entirely new |
| Library directory for each inspector level, and sharing a single location doesn't fix the |
| shared-settings bug. Changing storage location would lose all existing Inspector settings. |
| |
| - Sync settings between multiple open Inspectors. This would be catastrophic, as changing |
| the active tab on one inspector would immediately propagate to the other open inspectors. |
| |
| * UserInterface/Models/Setting.js: |
| (WebInspector.Setting): |
| * UserInterface/Protocol/InspectorFrontendHostStub.js: |
| (window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.inspectionLevel): |
| |
| 2015-11-23 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: use Cmd-Option-L and Cmd-Option-R for toggling navigation and details sidebars |
| https://bugs.webkit.org/show_bug.cgi?id=151572 |
| |
| Reviewed by Timothy Hatcher. |
| |
| The previous shortcuts were Cmd-0 and Cmd-Option-0, but these didn't match Safari's |
| sidebar shortcuts and conflict with Cmd-0 as the cross-browser way to reset page zoom. |
| |
| * UserInterface/Base/Main.js: |
| (WebInspector.contentLoaded): |
| |
| 2015-11-23 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: when inspecting the inspector, add the inspection level to the title bar |
| https://bugs.webkit.org/show_bug.cgi?id=151555 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Drive-by update to remove some localization strings that are no longer used. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2015-11-22 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Clean up FolderizedTreeElement folder settings |
| https://bugs.webkit.org/show_bug.cgi?id=151539 |
| |
| Reviewed by Brian Burg. |
| |
| The expanded state for each folder was stored as an external property on the folder |
| tree element. Now FolderizedTreeElement keeps a map of folders to settings. |
| |
| * UserInterface/Views/FolderizedTreeElement.js: |
| (WebInspector.FolderizedTreeElement): |
| (WebInspector.FolderizedTreeElement.prototype.removeChildren): |
| (WebInspector.FolderizedTreeElement.prototype._parentTreeElementForRepresentedObject): |
| (WebInspector.FolderizedTreeElement.prototype._folderTreeElementExpandedStateChange): |
| |
| == Rolled over to ChangeLog-2015-11-21 == |