| 2019-10-07 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Settings: enable the image transparency grid by default and create a checkbox for it |
| https://bugs.webkit.org/show_bug.cgi?id=202678 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Setting.js: |
| Enable the "Show transparency grid" setting by default. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createSourcesSettingsView): |
| Add a checkbox for "Show transparency grid" in the "Sources" pane. |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView): |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView): |
| * UserInterface/Views/ImageResourceContentView.js: |
| (WI.ImageResourceContentView): |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView): |
| * UserInterface/Views/ResourceCollectionContentView.js: |
| (WI.ResourceCollectionContentView): |
| * Localizations/en.lproj/localizedStrings.js: |
| Unify the tooltip string for all of the "Show transparency grid" navigation items. |
| |
| 2019-10-07 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: don't allow blackboxing of scripts that aren't finished loading or failed to load |
| https://bugs.webkit.org/show_bug.cgi?id=202376 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.prototype.get supportsScriptBlackboxing): |
| |
| * UserInterface/Views/SourceCodeTreeElement.js: |
| (WI.SourceCodeTreeElement.prototype.updateStatus): |
| |
| 2019-10-02 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: for rules that don't match selected node, property values always show as invalid |
| https://bugs.webkit.org/show_bug.cgi?id=201571 |
| |
| Reviewed by Matt Baker. |
| |
| The gist of the bug: |
| - WI.CSSProperty is instantiated with `valid` false. |
| - CSSAgent.getMatchedStylesForNode never updates WI.CSSProperty instances because |
| the edited style does not in fact match the selected DOM node. A valid CSS property |
| is shown as invalid. |
| |
| To resolve this, WI.CSSProperty instances are now updated after editing |
| in the callback of `CSSAgent.setStyleText`. |
| |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype.changeStyleText): |
| (WI.DOMNodeStyles.prototype._parseStyleDeclarationPayload): |
| Don't store `style` in `this._stylesMap` of WI.DOMNodeStyles when the style doesn't match the selected node. |
| |
| 2019-10-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r250149): changing CSS via the Styles details sidebar panel doesn't update the associated resource |
| https://bugs.webkit.org/show_bug.cgi?id=202446 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| When updating the text of a `WI.CSSProperty` (or the selector of a `WI.CSSRule`) is updated, |
| Web Inspector will update the backend style sheet, which will notify the `WI.CSSManager` of |
| the change, without ever going through the associated `WI.SourceCode`. `WI.CSSManager` then |
| updates the content of the `WI.SourceCode` to reflect these changes, but at that point the |
| `WI.SourceCode` hadn't yet "moved" it's `currentRevision` forward of it's `originalRevision` |
| which means it would get overridden the first time the `WI.SourceCode` updates itself. |
| |
| Modify `WI.SourceCode` such that every path to get the `currentRevision` ensures that it is |
| "moved" forward before the `WI.SourceCodeRevision` value is returned. |
| |
| * UserInterface/Models/SourceCode.js: |
| (WI.SourceCode.prototype.get currentRevision): |
| (WI.SourceCode.prototype.get content): |
| (WI.SourceCode.prototype.revisionContentDidChange): |
| (WI.SourceCode.prototype._initializeCurrentRevisionIfNeeded): Added. |
| (WI.SourceCode.prototype._processContent): |
| |
| 2019-10-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: clicking on a breakpoint changes the path components to not match the script's path |
| https://bugs.webkit.org/show_bug.cgi?id=196450 |
| <rdar://problem/49488100> |
| |
| Reviewed by Matt Baker. |
| |
| When selecting any tree element that isn't in the resources tree outline, attempt to find |
| the corresponding tree element in the resources tree outline and silently select that as |
| well so that the hierarchical path component shows the right breadcrumb trail. |
| |
| If the tree element is for a `WI.Script` which has a corresponding `WI.Resource`, use the |
| `WI.Resource` instead. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange): |
| |
| 2019-09-30 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: JS Formatter: unexpected newlines added inside template string expression |
| https://bugs.webkit.org/show_bug.cgi?id=202374 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Wrap every "add newline" with a check to see if the current node is inside a template |
| literal node. If so (and we aren't forcibly adding a newline), prevent the newline from |
| being added. |
| |
| * UserInterface/Workers/Formatter/JSFormatter.js: |
| (JSFormatter.prototype._appendNewline): Added. |
| (JSFormatter.prototype._insertNewlinesBeforeToken): |
| (JSFormatter.prototype._insertComment): |
| (JSFormatter.prototype._insertSameLineTrailingComments): |
| (JSFormatter.prototype._insertCommentsAndNewlines): |
| (JSFormatter.prototype._before): |
| (JSFormatter.prototype._after): |
| (JSFormatter.prototype._handleTokenAtNode): |
| (JSFormatter.prototype._exitNode): |
| (JSFormatter.prototype._afterProgram): |
| |
| 2019-09-30 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: shader type header is white in dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=202253 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/ShaderProgramContentView.css: |
| (.content-view.shader-program > .shader > header > .shader-type): |
| (@media (prefers-color-scheme: dark) .content-view.shader-program > .shader > header > .shader-type): Added. |
| (@media (prefers-color-scheme: dark) .content-view.shader-program > .shader > header): Deleted. |
| (.content-view.shader-program > .shader > header > *): Deleted. |
| |
| 2019-09-26 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Include LocalResourceOverrides in the Open Resource dialog |
| https://bugs.webkit.org/show_bug.cgi?id=202023 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/OpenResourceDialog.js: |
| (WI.OpenResourceDialog.prototype._addScriptsForTarget): |
| Also walk the extraScriptCollection. Some Worker resource loads never |
| fully become resources. |
| |
| (WI.OpenResourceDialog.prototype.didPresentDialog): |
| (WI.OpenResourceDialog.prototype._addLocalResourceOverrides): |
| Include local resource override resources. |
| |
| (WI.OpenResourceDialog.prototype._populateResourceTreeOutline): |
| * Localizations/en.lproj/localizedStrings.js: |
| Include a subtitle for local resource overrides. |
| |
| * UserInterface/Views/OpenResourceDialog.css: |
| (.open-resource-dialog .tree-outline.large .item .titles .subtitle): |
| Improved subtitle styling. |
| |
| 2019-09-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: REGRESSION: Elements detail sidebar sometimes starts collapsed |
| https://bugs.webkit.org/show_bug.cgi?id=202057 |
| <rdar://problem/55572345> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ElementsTabContentView.js: |
| (WI.ElementsTabContentView.prototype.get detailsSidebarExpandedByDefault): |
| Default the Elements tab detail sidebar to be shown, not collapsed. |
| |
| * UserInterface/Views/TabContentView.js: |
| (WI.TabContentView): |
| (WI.TabContentView.prototype.get detailsSidebarExpandedByDefault): |
| Allow classes to specify whether or not their detail sidebar should |
| be expanded by default. |
| |
| 2019-09-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'WI.showDebugUISetting.addEventListener') |
| https://bugs.webkit.org/show_bug.cgi?id=202220 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype.initialLayout): |
| |
| 2019-09-23 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: WebGPU compute shaders aren't syntax highlighted |
| https://bugs.webkit.org/show_bug.cgi?id=202030 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CodeMirrorAdditions.js: |
| `CodeMirror.defineMIME` expects a "spec" object, which can't just be another MIME type. |
| Instead, get the "spec" of the defined "x-shader/x-vertex" and "x-shader/x-fragment" modes |
| and use that when defining MIMEs for the WebGPU shader pipeline modes. |
| |
| * UserInterface/Views/ShaderProgramContentView.js: |
| (WI.ShaderProgramContentView): |
| Get the `contextType` off of the shader's canvas, which is where it actually lives. |
| |
| 2019-09-23 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: show WebGPU shader pipelines |
| https://bugs.webkit.org/show_bug.cgi?id=201675 |
| <rdar://problem/55543450> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Show WebGPU shader pipelines ("programs") underneath each corresponding WebGPU device. |
| |
| Allow editing of attached shader modules for each WebGPU shader pipeline, but don't allow |
| highlighting/disabling, as WebGPU pipelines don't have those capabilities/concepts yet. |
| |
| * UserInterface/Protocol/CanvasObserver.js: |
| (WI.CanvasObserver.prototype.programCreated): |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype.programCreated): |
| |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.prototype.nextShaderProgramDisplayNumberForProgramType): Added. |
| (WI.Canvas.prototype.nextShaderProgramDisplayNumber): Deleted. |
| |
| * UserInterface/Models/ShaderProgram.js: |
| (WI.ShaderProgram): |
| (WI.ShaderProgram.contextTypeSupportsProgramType): Added. |
| (WI.ShaderProgram.programTypeSupportsShaderType): Added. |
| (WI.ShaderProgram.prototype.get programType): Added. |
| (WI.ShaderProgram.prototype.get displayName): |
| (WI.ShaderProgram.prototype.set disabled): |
| (WI.ShaderProgram.prototype.requestShaderSource): |
| (WI.ShaderProgram.prototype.updateShader): |
| (WI.ShaderProgram.prototype.showHighlight): |
| (WI.ShaderProgram.prototype.hideHighlight): |
| (WI.ShaderProgram.prototype.requestVertexShaderSource): Deleted. |
| (WI.ShaderProgram.prototype.requestFragmentShaderSource): Deleted. |
| (WI.ShaderProgram.prototype.updateVertexShader): Deleted. |
| (WI.ShaderProgram.prototype.updateFragmentShader): Deleted. |
| (WI.ShaderProgram.prototype._requestShaderSource): Deleted. |
| (WI.ShaderProgram.prototype._updateShader): Deleted. |
| |
| * UserInterface/Views/ShaderProgramContentView.js: |
| (WI.ShaderProgramContentView): |
| (WI.ShaderProgramContentView.prototype.get navigationItems): Added. |
| (WI.ShaderProgramContentView.prototype.shown): |
| (WI.ShaderProgramContentView.prototype.hidden): |
| (WI.ShaderProgramContentView.prototype.get saveData): |
| (WI.ShaderProgramContentView.prototype._refreshContent): |
| (WI.ShaderProgramContentView.prototype._updateShader): |
| (WI.ShaderProgramContentView.prototype._contentDidChange): |
| * UserInterface/Views/ShaderProgramContentView.css: |
| (.content-view.shader-program > .shader): Added. |
| (.content-view.shader-program > .shader.compute): Added. |
| (body[dir=ltr] .content-view.shader-program > .shader.vertex,): Added. |
| (body[dir=ltr] .content-view.shader-program > .shader.fragment,): Added. |
| (.content-view.shader-program > .shader + .shader): Added. |
| (.content-view.shader-program > .shader > header > *): Added. |
| (.content-view.shader-program > .shader > header > .shader-type): Added. |
| (@media (prefers-color-scheme: dark) .content-view.shader-program > .shader > header): Added. |
| (.content-view.shader-program > .text-editor.shader): Deleted. |
| (body[dir=ltr] .content-view.shader-program > .text-editor.shader.vertex,): Deleted. |
| (body[dir=ltr] .content-view.shader-program > .text-editor.shader.fragment,): Deleted. |
| (body[dir=ltr] .content-view.shader-program > .text-editor.shader + .text-editor.shader): Deleted. |
| (body[dir=rtl] .content-view.shader-program > .text-editor.shader + .text-editor.shader): Deleted. |
| (.content-view.shader-program > .text-editor.shader > .type-title): Deleted. |
| (.content-view.shader-program > .text-editor.shader > .CodeMirror): Deleted. |
| * UserInterface/Views/CodeMirrorAdditions.js: |
| |
| * UserInterface/Views/ShaderProgramTreeElement.js: |
| (WI.ShaderProgramTreeElement): |
| (WI.ShaderProgramTreeElement.prototype.onattach): |
| (WI.ShaderProgramTreeElement.prototype.ondetach): |
| (WI.ShaderProgramTreeElement.prototype.canSelectOnMouseDown): |
| (WI.ShaderProgramTreeElement.prototype.populateContextMenu): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-09-23 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Improve the Uncaught Exception View file a bug link |
| https://bugs.webkit.org/show_bug.cgi?id=201717 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Debug/UncaughtExceptionReporter.js: |
| Allow the link to be clicked. Use openInNewTab on click to also |
| bring the new tab to the foreground. Also update the content. |
| |
| 2019-09-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: HTML Formatter - better indentation/newline handling for self closing tags |
| https://bugs.webkit.org/show_bug.cgi?id=202036 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Workers/Formatter/HTMLFormatter.js: |
| (HTMLFormatter.prototype._before): |
| |
| 2019-09-20 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Remove BranchManager in favor of just using currentRevision |
| https://bugs.webkit.org/show_bug.cgi?id=202000 |
| |
| Reviewed by Devin Rousso. |
| |
| Remove BranchManager. The Branch concept never got fleshed out, and would |
| likely be too complex for the average case. Local Overrides are simpler. |
| In the interest of expanding Local Overrides to more content lets simply |
| by removing Branches. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| * UserInterface/Controllers/BranchManager.js: Removed. |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges.styleSheetFound): |
| (WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges): |
| (WI.CSSManager.prototype._resourceContentDidChange): |
| (WI.CSSManager.prototype._updateResourceContent.fetchedStyleSheetContent): |
| * UserInterface/Main.html: |
| * UserInterface/Models/Branch.js: Removed. |
| * UserInterface/Models/SourceCode.js: |
| (WI.SourceCode.prototype._processContent): |
| (WI.SourceCode): |
| * UserInterface/Views/TextResourceContentView.js: |
| (WI.TextResourceContentView.prototype._textEditorContentDidChange): |
| |
| 2019-09-20 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r250114. |
| |
| Broke ~16 webgpu/ tests on Mojave wk2 |
| |
| Reverted changeset: |
| |
| "Web Inspector: Canvas: show WebGPU shader pipelines" |
| https://bugs.webkit.org/show_bug.cgi?id=201675 |
| https://trac.webkit.org/changeset/250114 |
| |
| 2019-09-19 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: searching in overrides doesn't work |
| https://bugs.webkit.org/show_bug.cgi?id=202020 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.customPerformSearch): |
| Do not go to agents for a local resource. Search locally in the TextEditor. |
| |
| 2019-09-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: show WebGPU shader pipelines |
| https://bugs.webkit.org/show_bug.cgi?id=201675 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Show WebGPU shader pipelines ("programs") underneath each corresponding WebGPU device. |
| |
| Allow editing of attached shader modules for each WebGPU shader pipeline, but don't allow |
| highlighting/disabling, as WebGPU pipelines don't have those capabilities/concepts yet. |
| |
| * UserInterface/Protocol/CanvasObserver.js: |
| (WI.CanvasObserver.prototype.programCreated): |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype.programCreated): |
| |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.prototype.nextShaderProgramDisplayNumberForProgramType): Added. |
| (WI.Canvas.prototype.nextShaderProgramDisplayNumber): Deleted. |
| |
| * UserInterface/Models/ShaderProgram.js: |
| (WI.ShaderProgram): |
| (WI.ShaderProgram.contextTypeSupportsProgramType): Added. |
| (WI.ShaderProgram.programTypeSupportsShaderType): Added. |
| (WI.ShaderProgram.prototype.get programType): Added. |
| (WI.ShaderProgram.prototype.get displayName): |
| (WI.ShaderProgram.prototype.set disabled): |
| (WI.ShaderProgram.prototype.requestShaderSource): |
| (WI.ShaderProgram.prototype.updateShader): |
| (WI.ShaderProgram.prototype.showHighlight): |
| (WI.ShaderProgram.prototype.hideHighlight): |
| (WI.ShaderProgram.prototype.requestVertexShaderSource): Deleted. |
| (WI.ShaderProgram.prototype.requestFragmentShaderSource): Deleted. |
| (WI.ShaderProgram.prototype.updateVertexShader): Deleted. |
| (WI.ShaderProgram.prototype.updateFragmentShader): Deleted. |
| (WI.ShaderProgram.prototype._requestShaderSource): Deleted. |
| (WI.ShaderProgram.prototype._updateShader): Deleted. |
| |
| * UserInterface/Views/ShaderProgramContentView.js: |
| (WI.ShaderProgramContentView): |
| (WI.ShaderProgramContentView.prototype.get navigationItems): Added. |
| (WI.ShaderProgramContentView.prototype.shown): |
| (WI.ShaderProgramContentView.prototype.hidden): |
| (WI.ShaderProgramContentView.prototype.get saveData): |
| (WI.ShaderProgramContentView.prototype._refreshContent): |
| (WI.ShaderProgramContentView.prototype._updateShader): |
| (WI.ShaderProgramContentView.prototype._contentDidChange): |
| * UserInterface/Views/ShaderProgramContentView.css: |
| (.content-view.shader-program > .shader): Added. |
| (.content-view.shader-program > .shader.compute): Added. |
| (body[dir=ltr] .content-view.shader-program > .shader.vertex,): Added. |
| (body[dir=ltr] .content-view.shader-program > .shader.fragment,): Added. |
| (.content-view.shader-program > .shader + .shader): Added. |
| (.content-view.shader-program > .shader > header > *): Added. |
| (.content-view.shader-program > .shader > header > .shader-type): Added. |
| (@media (prefers-color-scheme: dark) .content-view.shader-program > .shader > header): Added. |
| (.content-view.shader-program > .text-editor.shader): Deleted. |
| (body[dir=ltr] .content-view.shader-program > .text-editor.shader.vertex,): Deleted. |
| (body[dir=ltr] .content-view.shader-program > .text-editor.shader.fragment,): Deleted. |
| (body[dir=ltr] .content-view.shader-program > .text-editor.shader + .text-editor.shader): Deleted. |
| (body[dir=rtl] .content-view.shader-program > .text-editor.shader + .text-editor.shader): Deleted. |
| (.content-view.shader-program > .text-editor.shader > .type-title): Deleted. |
| (.content-view.shader-program > .text-editor.shader > .CodeMirror): Deleted. |
| * UserInterface/Views/CodeMirrorAdditions.js: |
| |
| * UserInterface/Views/ShaderProgramTreeElement.js: |
| (WI.ShaderProgramTreeElement): |
| (WI.ShaderProgramTreeElement.prototype.onattach): |
| (WI.ShaderProgramTreeElement.prototype.ondetach): |
| (WI.ShaderProgramTreeElement.prototype.canSelectOnMouseDown): |
| (WI.ShaderProgramTreeElement.prototype.populateContextMenu): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-09-18 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Better handling for large arrays and collections in Object Trees |
| https://bugs.webkit.org/show_bug.cgi?id=143589 |
| <rdar://problem/16135388> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Adds two buttons before the "Prototype" item in expanded object/collection previews: |
| - Show %d More |
| - Show All (%d More) |
| |
| The default `fetchCount` increment is `100`. The first button will only be shown if there |
| are more than `100` items remaining (haven't been shown). |
| |
| * UserInterface/Protocol/RemoteObject.js: |
| (WI.RemoteObject.prototype.getPropertyDescriptors): |
| (WI.RemoteObject.prototype.getDisplayablePropertyDescriptors): |
| (WI.RemoteObject.prototype.getCollectionEntries): |
| (WI.RemoteObject.prototype.getOwnPropertyDescriptor.wrappedCallback): |
| (WI.RemoteObject.prototype._getProperties): Added. |
| (WI.RemoteObject.prototype._getDisplayableProperties): Added. |
| |
| * UserInterface/Views/ObjectTreeView.js: |
| (WI.ObjectTreeView): |
| (WI.ObjectTreeView.showMoreFetchCount): Added. |
| (WI.ObjectTreeView.addShowMoreIfNeeded): Added. |
| (WI.ObjectTreeView.prototype.update): |
| (WI.ObjectTreeView.prototype._updateChildren): |
| (WI.ObjectTreeView.prototype._updateEntries): |
| (WI.ObjectTreeView.prototype._updateProperties): |
| * UserInterface/Views/ObjectTreeView.css: |
| (.tree-outline.object li > button[disabled] + .indeterminate-progress-spinner): Added. |
| Avoid duplicating the button creation logic in `WI.ObjectTreePropertyTreeElement` by using a |
| `static` function. This expects the existence of and requires access to "private" values. |
| |
| * UserInterface/Views/ObjectTreePropertyTreeElement.js: |
| (WI.ObjectTreePropertyTreeElement): |
| (WI.ObjectTreePropertyTreeElement.prototype.onpopulate): |
| (WI.ObjectTreePropertyTreeElement.prototype._updateChildren): |
| (WI.ObjectTreePropertyTreeElement.prototype._updateEntries): |
| (WI.ObjectTreePropertyTreeElement.prototype._updateProperties): |
| (WI.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal): Deleted. |
| |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.evaluated): |
| (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedArrayPropertyNames): Deleted. |
| |
| * UserInterface/Controllers/RuntimeManager.js: |
| (WI.RuntimeManager.prototype.getPropertiesForRemoteObject): Deleted. |
| Remove unused function. |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-09-18 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: console assertion when pressing up/down in empty console log view |
| https://bugs.webkit.org/show_bug.cgi?id=201948 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView.prototype._upArrowWasPressed): |
| (WI.LogContentView.prototype._downArrowWasPressed): |
| Ensure that a message exists before calling `_updateMessagesSelection`, which |
| would assert if given a bad message. Additionally, only perform preventDefault |
| when selecting a message. This allows us to fall back to a system beep if |
| this key event does nothing. |
| |
| 2019-09-17 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: HTML Formatter - better handling for HTML specific tag cases (<p>/<li>) |
| https://bugs.webkit.org/show_bug.cgi?id=201757 |
| <rdar://problem/55409987> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Workers/Formatter/HTMLFormatter.js: |
| (HTMLFormatter.prototype._after): |
| Handle a closing tag with different text than the opening tag. |
| |
| * UserInterface/Workers/Formatter/HTMLTreeBuilderFormatter.js: |
| (HTMLTreeBuilderFormatter.prototype._pushParserNodeTopLevel): |
| (HTMLTreeBuilderFormatter.prototype._pushParserNodeStack): |
| (HTMLTreeBuilderFormatter.prototype._implicitlyCloseHTMLNodesForOpenTag): |
| (HTMLTreeBuilderFormatter.prototype._implicitlyCloseTagNamesInsideParentTagNames): |
| (HTMLTreeBuilderFormatter.prototype._indexOfStackNodeMatchingTagNames): |
| Generalize the implicit closing a bit. Allow open tags to implicitly |
| close certain other open tags in the stack. |
| |
| 2019-09-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: HTML Formatter - XML mode |
| https://bugs.webkit.org/show_bug.cgi?id=201758 |
| |
| Reviewed by Devin Rousso. |
| |
| * Tools/HTMLFormatter/index.html: |
| * Tools/SourceMaps/index.html: |
| Update Tools to more easily test XML. |
| |
| * UserInterface/Proxies/FormatterWorkerProxy.js: |
| (WI.FormatterWorkerProxy.prototype.formatXML): |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.hasFormatter): |
| (WI.TextEditor.prototype._startWorkerPrettyPrint): |
| Allow formatting XML content. |
| |
| * UserInterface/Workers/Formatter/FormatterWorker.js: |
| (FormatterWorker.prototype.formatHTML): |
| (FormatterWorker.prototype.formatXML): |
| Expose "formatXML". |
| |
| * UserInterface/Workers/Formatter/HTMLFormatter.js: |
| (HTMLFormatter.let.dom): |
| (HTMLFormatter): |
| (HTMLFormatter.prototype._shouldHaveNoChildren): |
| (HTMLFormatter.prototype._before): |
| (HTMLFormatter.prototype._after): |
| * UserInterface/Workers/Formatter/HTMLParser.js: |
| (HTMLParser.prototype.parseDocument): |
| * UserInterface/Workers/Formatter/HTMLTreeBuilderFormatter.js: |
| (HTMLTreeBuilderFormatter.prototype._isEmptyNode): |
| Give the HTMLFormatter and related classes an XML mode that |
| has less of the smarts of XML. |
| |
| 2019-09-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: HTML Formatting: Handle infinite loop for incomplete script data |
| https://bugs.webkit.org/show_bug.cgi?id=201769 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Workers/Formatter/HTMLParser.js: |
| (HTMLParser): |
| Handle EOF in the script data's loop. |
| Better handle EOF at the end of text data. |
| |
| 2019-09-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Improve auto completion typing performance by avoiding global forced layouts |
| https://bugs.webkit.org/show_bug.cgi?id=201735 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/Main.css: |
| (#layout-measurement-container): |
| * UserInterface/Base/Main.js: |
| (WI.measureElement): |
| Provide a helper for measuring an element in a hidden container |
| that helps avoid more global layout. |
| |
| * UserInterface/Views/CompletionSuggestionsView.js: |
| (WI.CompletionSuggestionsView.prototype.show): |
| Use measure element to avoid a global forced layout. |
| |
| 2019-09-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Tighter autocomplete bubbles |
| https://bugs.webkit.org/show_bug.cgi?id=201742 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/CompletionSuggestionsView.js: |
| (WI.CompletionSuggestionsView.prototype.show): |
| Eliminate the trailing space. Use bounding client rect to get |
| fractional widths and raise the value so we are at an even number. |
| |
| 2019-09-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| REGRESSION: Web Inspector: Layout Timeline View does not show popover for initiator data |
| https://bugs.webkit.org/show_bug.cgi?id=201732 |
| <rdar://problem/55312339> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/LayoutTimelineDataGrid.js: |
| (WI.LayoutTimelineDataGrid.prototype.callFramePopoverAnchorElement): |
| (WI.LayoutTimelineDataGrid.prototype.shouldShowCallFramePopover): |
| The column name was incorrect. |
| |
| 2019-09-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Uncaught Exception: null is not an object (evaluating 'Object.keys(propertyNames)​')​ (at JavaScriptRuntimeCompletionProvider.js:​244:​57)​ |
| https://bugs.webkit.org/show_bug.cgi?id=201729 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| (WI.JavaScriptRuntimeCompletionProvider): |
| (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded): |
| Don't clear the completion object group until all ongoing requests have completed. |
| Percision for the lifetime of the object group objects is not important, but we |
| surely don't want to delete an object too soon. |
| |
| 2019-09-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Formatter: Pretty Print HTML resources (including inline <script>/<style>) |
| https://bugs.webkit.org/show_bug.cgi?id=201535 |
| <rdar://problem/29119232> |
| |
| Reviewed by Devin Rousso. |
| |
| Introduce HTMLFormatter, HTMLParser, and HTMLTreeBuilderFormatter. |
| |
| - HTMLParser tokenizes HTML content and passes it to a tree builder. |
| - HTMLTreeBuilderFormatter uses those tokens to create a formatted dom tree of fake nodes. |
| - HTMLFormatter then builds formatted content and a FormatterSourceMap from that DOM tree. |
| |
| The output of HTMLFormatter is intended to just modify whitespace. So it won't be a |
| 100% compatible DOM, but will be useful for debugging and reading inline <style> |
| and <script>, which is a more common debugging scenario. It also maintains original |
| author attribute quotations or lack therefore, because again it tries to only |
| change whitespace. A separate tree builder could be used for tidying content. |
| |
| This introduces a few tools for working with formatting: |
| |
| - Tools/HTMLFormatter - debug the parser, tree builder, and output format |
| - Tools/SourceMaps - debug formatted content and source mappings |
| |
| This also: |
| |
| - renames "EsprimaFormatter" to "JSFormatter" |
| - eliminates an extra trailing newline in CSSFormatter output |
| |
| * Tools/HTMLFormatter/HTMLTreeBuilderDebug.js: Added. |
| * Tools/HTMLFormatter/index.html: Added. |
| * Tools/HTMLFormatter/styles.css: Added. |
| Tool for debugging the HTML formatter components. |
| |
| * Tools/SourceMaps/.gitignore: Added. |
| * Tools/SourceMaps/index.html: Added. |
| * Tools/SourceMaps/setup.sh: Added. |
| * Tools/SourceMaps/styles.css: Added. |
| Tool for debugging Formatter generated Source Maps. |
| |
| * Tools/JSFormatter/JSFormatterDebug.js: Renamed from Source/WebInspectorUI/Tools/Formatting/EsprimaFormatterDebug.js. |
| * Tools/JSFormatter/codemirror-additions.css: Renamed from Source/WebInspectorUI/Tools/Formatting/codemirror-additions.css. |
| * Tools/JSFormatter/index.html: Renamed from Source/WebInspectorUI/Tools/Formatting/index.html. |
| Renamed this tool. EsprimaFormatter => JSFormatter. |
| |
| * UserInterface/Controllers/FormatterSourceMap.js: |
| (WI.FormatterSourceMap.prototype.originalPositionToFormattedPosition): |
| (WI.FormatterSourceMap.prototype.formattedPositionToOriginalPosition): |
| New APIs used by tools and tests for translating "position" offsets and not line/columns. |
| |
| * UserInterface/Workers/Formatter/JSFormatter.js: Renamed from Source/WebInspectorUI/UserInterface/Workers/Formatter/EsprimaFormatter.js. |
| (JSFormatter): |
| * UserInterface/Workers/Formatter/CSSFormatter.js: |
| (CSSFormatter): |
| Allow using a supplied builder, which is useful when formatting |
| inline content from HTMLFormatter (<style> / <script>). |
| |
| * UserInterface/Workers/Formatter/FormatterContentBuilder.js: |
| (FormatterContentBuilder.prototype.get indentString): |
| (FormatterContentBuilder.prototype.get originalContent): |
| (FormatterContentBuilder.prototype.get indentLevel): |
| (FormatterContentBuilder.prototype.get originalOffset): |
| (FormatterContentBuilder.prototype.set originalOffset): |
| (FormatterContentBuilder.prototype.appendNonToken): |
| (FormatterContentBuilder.prototype.appendToken): |
| (FormatterContentBuilder.prototype.appendTokenWithPossibleNewlines): |
| (FormatterContentBuilder.prototype.appendMapping): |
| (FormatterContentBuilder.prototype.indentToLevel): |
| (FormatterContentBuilder.prototype.finish): |
| Provide API for getting / setting the original offset and indent level. |
| This is useful when the HTMLFormatter runs the CSSFormatter/JSFormatter |
| in a nested context (<style> / <script>). Add a few more APIs for |
| conveniences when appending tokens or important positions. |
| |
| * UserInterface/Workers/Formatter/HTMLParser.js: Added. |
| (HTMLParser.prototype.parseDocument): |
| (HTMLParser.prototype._isEOF): |
| (HTMLParser.prototype._peek): |
| (HTMLParser.prototype._peekCharacterRegex): |
| (HTMLParser.prototype._peekString): |
| (HTMLParser.prototype._peekCaseInsensitiveString): |
| (HTMLParser.prototype._consumeWhitespace): |
| (HTMLParser.prototype._consumeUntilString): |
| (HTMLParser.prototype._consumeUntilRegex): |
| (HTMLParser.prototype._consumeDoubleQuotedString): |
| (HTMLParser): |
| Tokenize HTML content into nodes. |
| |
| * UserInterface/Workers/Formatter/HTMLTreeBuilderFormatter.js: Added. |
| (HTMLTreeBuilderFormatter.prototype.get dom): |
| (HTMLTreeBuilderFormatter.prototype.begin): |
| (HTMLTreeBuilderFormatter.prototype.pushParserNode): |
| (HTMLTreeBuilderFormatter.prototype.end): |
| (HTMLTreeBuilderFormatter.prototype._pushParserNodeTopLevel): |
| (HTMLTreeBuilderFormatter.prototype._pushParserNodeStack): |
| (HTMLTreeBuilderFormatter.prototype._isEmptyNode): |
| (HTMLTreeBuilderFormatter.prototype._buildDOMNodeFromOpenTag): |
| (HTMLTreeBuilderFormatter.prototype._buildErrorNodeFromCloseTag): |
| (HTMLTreeBuilderFormatter.prototype._buildSimpleNodeFromParserNode): |
| (HTMLTreeBuilderFormatter): |
| Build a simple DOM tree from parser nodes. |
| |
| * UserInterface/Workers/Formatter/HTMLFormatter.js: Added. |
| (HTMLFormatter.let.dom): |
| (HTMLFormatter): |
| (HTMLFormatter.prototype.get success): |
| (HTMLFormatter.prototype.get formattedText): |
| (HTMLFormatter.prototype.get sourceMapData): |
| (HTMLFormatter.prototype._walk): |
| (HTMLFormatter.prototype._walkChildren): |
| (HTMLFormatter.prototype._isNodeSelfClosing): |
| (HTMLFormatter.prototype._shouldHaveInlineContent): |
| (HTMLFormatter.prototype._hasMultipleNewLines): |
| (HTMLFormatter.prototype._buildAttributeString): |
| (HTMLFormatter.prototype._before): |
| (HTMLFormatter.prototype._after): |
| (HTMLFormatter.prototype._formatWithNestedFormatter): |
| (HTMLFormatter.prototype._formatScript): |
| (HTMLFormatter.prototype._formatStyle): |
| Output pretty printed text from a HTMLTreeBuilderFormatter dom tree. |
| |
| * UserInterface/Proxies/FormatterWorkerProxy.js: |
| (WI.FormatterWorkerProxy.prototype.formatHTML): |
| * UserInterface/Workers/Formatter/FormatterWorker.js: |
| (FormatterWorker.prototype.formatJavaScript): |
| (FormatterWorker.prototype.formatCSS): |
| (FormatterWorker.prototype.formatHTML): |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.hasFormatter): |
| (WI.TextEditor.prototype._canUseFormatterWorker): |
| (WI.TextEditor.prototype._startWorkerPrettyPrint): |
| Allow pretty printing HTML resources. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| New resources. |
| |
| 2019-09-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: [Overrides] Command-Z doesn't undo changes after page reload |
| https://bugs.webkit.org/show_bug.cgi?id=201698 |
| <rdar://problem/55276645> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ContentViewContainer.js: |
| (WI.ContentViewContainer.prototype.closeAllContentViews): |
| Provide a filter to opt out of closing some content views. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel.prototype._closeContentViewsFilter): |
| (WI.SourcesNavigationSidebarPanel.prototype._updateMainFrameTreeElement): |
| Avoid closing ContentViews for local resource overrides. This keeps the |
| SourceCodeTextEditor around and thus its undo/redo stack. |
| |
| 2019-09-12 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Uncaught Exception: TypeError: null is not an object (evaluating 'selectedTreeElement.representedObject') |
| https://bugs.webkit.org/show_bug.cgi?id=201716 |
| <rdar://problem/55292615> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): |
| If a breakpoint was removed without a selection in the breakpoint tree outline |
| then there may be no selected tree element. |
| |
| 2019-09-11 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: REGRESSION: Inspector Timeline always starts at about 500ms mark on a reload |
| https://bugs.webkit.org/show_bug.cgi?id=200637 |
| <rdar://problem/54218967> |
| |
| Reviewed by Devin Rousso. |
| |
| The Timeline was getting a startTime value from before the user started |
| the timeline recording because of artificial adjustments that were made |
| to CPUTimelineRecords. Ignore adjusted values when updating the Timeline's |
| start and end times. |
| |
| * UserInterface/Models/Timeline.js: |
| (WI.Timeline.prototype._updateTimesIfNeeded): |
| Use unadjusted times, which should fall in the user started / stopped |
| timeline range. |
| |
| * UserInterface/Models/TimelineRecord.js: |
| (WI.TimelineRecord.prototype.get unadjustedStartTime): |
| (WI.TimelineRecord.prototype.get unadjustedEndTime): |
| Default implementation uses startTime/endTime. |
| |
| * UserInterface/Models/CPUTimelineRecord.js: |
| (WI.CPUTimelineRecord.prototype.get unadjustedStartTime): |
| * UserInterface/Models/MemoryTimelineRecord.js: |
| (WI.MemoryTimelineRecord.prototype.get unadjustedStartTime): |
| Each of these adjusted their startTime. |
| |
| 2019-09-11 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: REGRESSION: CPU: Overlay Markers for Thread views are off by 500ms |
| https://bugs.webkit.org/show_bug.cgi?id=201709 |
| <rdar://problem/55289279> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.prototype.layout): |
| Use the CPUTimelineRecord's timestamp (same as the record's endTime) as the |
| point when the CPU sample is taken. This aligns with the rest of the UI that |
| assumes that the 500ms before the sample point leads up to the sample value. |
| |
| 2019-09-11 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Do not show override actions unless Sources tab is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=201708 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.supportsLocalResourceOverrides): |
| |
| 2019-09-11 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: checkerboard has too much contrast in dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=201670 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/CanvasTabContentView.css: |
| (.content-view.canvas > .preview > img, .content-view.canvas .preview-container > canvas): Deleted. |
| Don't force a `background-color: white;` in dark mode. |
| |
| 2019-09-11 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Elements: don't show Changes panel when selecting text node |
| https://bugs.webkit.org/show_bug.cgi?id=201669 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Show Changes panel only for elements regardless of "Show only for selected node" setting. |
| |
| * UserInterface/Views/ChangesDetailsSidebarPanel.js: |
| (WI.ChangesDetailsSidebarPanel.prototype.supportsDOMNode): |
| (WI.ChangesDetailsSidebarPanel.prototype.inspect): Deleted. |
| |
| 2019-09-11 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: instrument WebGPUDevice instead of GPUCanvasContext |
| https://bugs.webkit.org/show_bug.cgi?id=201650 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Most of the actual "work" done with Web GPU actually uses a `WebGPUDevice`. |
| |
| A `GPUCanvasContext` is basically just a display "client" of the device, and isn't even |
| required (e.g. compute pipeline). We should treat the `GPUCanvasContext` almost like a |
| `-webkit-canvas` client of a `WebGPUDevice`. |
| |
| * UserInterface/Protocol/CanvasObserver.js: |
| (WI.CanvasObserver.prototype.clientNodesChanged): Added. |
| (WI.CanvasObserver.prototype.cssCanvasClientNodesChanged): |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype.clientNodesChanged): Added. |
| (WI.CanvasManager.prototype.cssCanvasClientNodesChanged): Deleted. |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.resetUniqueDisplayNameNumbers): |
| (WI.Canvas.prototype.get displayName): |
| (WI.Canvas.prototype.requestNode): |
| (WI.Canvas.prototype.requestClientNodes): Added. |
| (WI.Canvas.prototype.requestSize): |
| (WI.Canvas.prototype.clientNodesChanged): Added. |
| (WI.Canvas.prototype.requestCSSCanvasClientNodes): Deleted. |
| (WI.Canvas.prototype.cssCanvasClientNodesChanged): Deleted. |
| |
| * UserInterface/Protocol/RemoteObject.js: |
| (WI.RemoteObject.resolveCanvasContext): |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView.prototype.attached): |
| (WI.CanvasContentView.prototype._refreshPixelSize): |
| * UserInterface/Views/CanvasDetailsSidebarPanel.js: |
| (WI.CanvasDetailsSidebarPanel.prototype.set canvas): |
| (WI.CanvasDetailsSidebarPanel.prototype.initialLayout): |
| (WI.CanvasDetailsSidebarPanel.prototype.layout): |
| (WI.CanvasDetailsSidebarPanel.prototype._refreshSourceSection): |
| (WI.CanvasDetailsSidebarPanel.prototype._refreshClientsSection): Added. |
| (WI.CanvasDetailsSidebarPanel.prototype._refreshCSSCanvasSection): Deleted. |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView.prototype._contentViewMouseEnter): |
| * UserInterface/Views/CanvasTreeElement.js: |
| (WI.CanvasTreeElement.prototype._handleMouseOver): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-09-11 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r249753. |
| |
| caused inspector/canvas/shaderProgram-add-remove-webgl.html to |
| crash on all Mac platforms. |
| |
| Reverted changeset: |
| |
| "Web Inspector: Canvas: instrument WebGPUDevice instead of |
| GPUCanvasContext" |
| https://bugs.webkit.org/show_bug.cgi?id=201650 |
| https://trac.webkit.org/changeset/249753 |
| |
| 2019-09-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: instrument WebGPUDevice instead of GPUCanvasContext |
| https://bugs.webkit.org/show_bug.cgi?id=201650 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Most of the actual "work" done with Web GPU actually uses a `WebGPUDevice`. |
| |
| A `GPUCanvasContext` is basically just a display "client" of the device, and isn't even |
| required (e.g. compute pipeline). We should treat the `GPUCanvasContext` almost like a |
| `-webkit-canvas` client of a `WebGPUDevice`. |
| |
| * UserInterface/Protocol/CanvasObserver.js: |
| (WI.CanvasObserver.prototype.clientNodesChanged): Added. |
| (WI.CanvasObserver.prototype.cssCanvasClientNodesChanged): |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype.clientNodesChanged): Added. |
| (WI.CanvasManager.prototype.cssCanvasClientNodesChanged): Deleted. |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.resetUniqueDisplayNameNumbers): |
| (WI.Canvas.prototype.get displayName): |
| (WI.Canvas.prototype.requestNode): |
| (WI.Canvas.prototype.requestClientNodes): Added. |
| (WI.Canvas.prototype.requestSize): |
| (WI.Canvas.prototype.clientNodesChanged): Added. |
| (WI.Canvas.prototype.requestCSSCanvasClientNodes): Deleted. |
| (WI.Canvas.prototype.cssCanvasClientNodesChanged): Deleted. |
| |
| * UserInterface/Protocol/RemoteObject.js: |
| (WI.RemoteObject.resolveCanvasContext): |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView.prototype.attached): |
| (WI.CanvasContentView.prototype._refreshPixelSize): |
| * UserInterface/Views/CanvasDetailsSidebarPanel.js: |
| (WI.CanvasDetailsSidebarPanel.prototype.set canvas): |
| (WI.CanvasDetailsSidebarPanel.prototype.initialLayout): |
| (WI.CanvasDetailsSidebarPanel.prototype.layout): |
| (WI.CanvasDetailsSidebarPanel.prototype._refreshSourceSection): |
| (WI.CanvasDetailsSidebarPanel.prototype._refreshClientsSection): Added. |
| (WI.CanvasDetailsSidebarPanel.prototype._refreshCSSCanvasSection): Deleted. |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView.prototype._contentViewMouseEnter): |
| * UserInterface/Views/CanvasTreeElement.js: |
| (WI.CanvasTreeElement.prototype._handleMouseOver): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-09-10 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Remove legacy CodeMirror based pretty printers |
| https://bugs.webkit.org/show_bug.cgi?id=201624 |
| |
| Reviewed by Devin Rousso. |
| |
| * Tools/PrettyPrinting/FormatterDebug.js: Removed. |
| * Tools/PrettyPrinting/Utilities.js: Removed. |
| * Tools/PrettyPrinting/codemirror-additions.css: Removed. |
| * Tools/PrettyPrinting/index.html: Removed. |
| * Tools/PrettyPrinting/populate/apple.css: Removed. |
| * UserInterface/Controllers/Formatter.js: Removed. |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| * UserInterface/Views/CodeMirrorFormatters.js: Removed. |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.prettyPrint): |
| (WI.TextEditor.prototype._canUseFormatterWorker): Deleted. |
| (WI.TextEditor.prototype._startCodeMirrorPrettyPrint): Deleted. |
| * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: |
| * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters: |
| |
| 2019-09-09 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Dark Mode: Overview Timeline View has jarring white box-shadows in dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=201442 |
| <rdar://problem/54999794> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/DataGrid.css: |
| (.data-grid:not(.variable-height-rows) table.data): |
| (.data-grid:not(.variable-height-rows) table.data.even-first-zebra-stripe): |
| (.data-grid.variable-height-rows.even-first-zebra-stripe table.data tr:nth-child(odd)): |
| (.data-grid.variable-height-rows.even-first-zebra-stripe table.data tr:nth-child(even)): |
| (.data-grid:not(.variable-height-rows) table.data.odd-first-zebra-stripe): Deleted. |
| (.data-grid.variable-height-rows.odd-first-zebra-stripe table.data tr:nth-child(odd)): Deleted. |
| (.data-grid.variable-height-rows.odd-first-zebra-stripe table.data tr:nth-child(even)): Deleted. |
| * UserInterface/Views/DataGrid.js: |
| (WI.DataGrid.prototype.updateVisibleRows): |
| * UserInterface/Views/Table.css: |
| (.table > .data-container > .data-list): |
| (.table > .data-container > .data-list.even-first-zebra-stripe): |
| (.table > .data-container > .data-list.odd-first-zebra-stripe): Deleted. |
| * UserInterface/Views/Table.js: |
| In the gradients "even" was mistakenly first. Fix these so that "odd" is first and the |
| unusual case would be having "even" first. This allows us to line up with `nth-of-type(even)`. |
| |
| * UserInterface/Views/Main.css: |
| (:root): |
| (@media (prefers-color-scheme: dark)): |
| Flip even and odd so we maintain the same styles for gradients. |
| |
| * UserInterface/Views/OverviewTimelineView.css: |
| (.timeline-view.overview > .data-grid tr): |
| (.timeline-view.overview > .data-grid tr:nth-child(even)): |
| (.timeline-view.overview > .data-grid tr.parent:not(.expanded) td.graph-column .timeline-record-bar:not(.has-inactive-segment) > .segment): |
| (.timeline-view.overview > .data-grid tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar:not(.has-inactive-segment) > .segment): |
| (.timeline-view.overview > .data-grid tr.parent:not(.expanded) td.graph-column .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): |
| (.timeline-view.overview > .data-grid tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): |
| (@media (prefers-color-scheme: dark)): |
| (WI.Table.prototype._updateVisibleRows): |
| * UserInterface/Views/Variables.css: |
| |
| 2019-09-06 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: CSS Formatter: the closing } of nested @media aren't indented |
| https://bugs.webkit.org/show_bug.cgi?id=201560 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Workers/Formatter/FormatterContentBuilder.js: |
| (FormatterContentBuilder.prototype.removeLastNewline): |
| It's possible that there were multiple newlines in a row, so we should update `_startOfLine` |
| to be `true` if the previous line was empty. |
| |
| 2019-09-06 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: CSS Formatter: links to CSS resources don't map to the right line after pretty printing if the line is after a multiline comment |
| https://bugs.webkit.org/show_bug.cgi?id=201559 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Newlines in multiline comments weren't added as line endings, so they weren't considered |
| when a source code location updated after pretty printing. |
| |
| * UserInterface/Workers/Formatter/CSSFormatter.js: |
| (CSSFormatter.prototype._format): |
| |
| 2019-09-06 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Better position for Sources tab when enabling the experimental setting |
| https://bugs.webkit.org/show_bug.cgi?id=201539 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| Place the Sources tab where the Debugger tab was. |
| |
| 2019-09-06 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Network: Error response headers summary has wrong color border |
| https://bugs.webkit.org/show_bug.cgi?id=201538 |
| <rdar://problem/55104469> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ResourceHeadersContentView.css: |
| (body[dir] .resource-headers > section.error > .details): |
| Re-apply an error style for resource-header sections. |
| |
| 2019-09-04 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: unify the interaction of show/hide status icons in Sources and Canvas |
| https://bugs.webkit.org/show_bug.cgi?id=201470 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Rather than "fading" the tree element's text when the underlying represented object is |
| disabled/blackboxed, we should just "fade" the icon. The "fade" shouldn't change when the |
| tree element is selected. The image of the status eye also shouldn't change depending on |
| whether the underlying represented object is disabled/blackboxed, as it being visible (even |
| if it's "faded") is already enough of an indicator. |
| |
| It should also be possible to toggle the disabled/blackboxed state via the context menu. |
| |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForSourceCode): |
| * UserInterface/Views/SourceCodeTreeElement.css: |
| (.tree-outline:not(.navigation-sidebar-panel-content-tree-outline) .item .status > .toggle-script-blackboxed, .tree-outline .item:not(:hover) .status > .toggle-script-blackboxed:not(.blackboxed)): Added. |
| (.tree-outline:not(.navigation-sidebar-panel-content-tree-outline) .item .status > .toggle-script-blackboxed, .tree-outline .item:not(:hover, .selected) .status > .toggle-script-blackboxed:not(.blackboxed)): Deleted. |
| |
| * UserInterface/Models/ShaderProgram.js: |
| (WI.ShaderProgram): |
| (WI.ShaderProgram.prototype.get disabled): Added. |
| (WI.ShaderProgram.prototype.set disabled): Added. |
| (WI.ShaderProgram.prototype.toggleDisabled): Deleted. |
| * UserInterface/Views/ShaderProgramTreeElement.js: |
| (WI.ShaderProgramTreeElement.prototype.onattach): |
| (WI.ShaderProgramTreeElement.prototype.ondetach): Added. |
| (WI.ShaderProgramTreeElement.prototype.canSelectOnMouseDown): |
| (WI.ShaderProgramTreeElement.prototype.populateContextMenu): Added. |
| (WI.ShaderProgramTreeElement.prototype._disabledImageElementClicked): |
| (WI.ShaderProgramTreeElement.prototype._handleShaderProgramDisabledChanged): Added. |
| * UserInterface/Views/ShaderProgramTreeElement.css: |
| (.tree-outline .item.shader-program .status > img): Added. |
| (.tree-outline .item.shader-program:not(:hover, .selected, .disabled) .status > img): Added. |
| (.tree-outline .item.shader-program.disabled .status > img): Added. |
| (@media (prefers-color-scheme: dark) .tree-outline .item.shader-program .status > img): Added. |
| (.item.shader-program .status > img): Deleted. |
| (.item.shader-program.disabled:hover .status > img): Deleted. |
| (.item.shader-program:not(:hover, .selected, .disabled) .status > img): Deleted. |
| (.item.shader-program.disabled > :not(.status)): Deleted. |
| (@media (prefers-color-scheme: dark) .item.shader-program .status > img): Deleted. |
| |
| 2019-09-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Local Overrides - Provide substitution content for resource loads (URL based) |
| https://bugs.webkit.org/show_bug.cgi?id=201262 |
| <rdar://problem/13108764> |
| |
| Reviewed by Devin Rousso. |
| |
| This adds a new "Local Overrides" section to the Sources tab sidebar |
| which will allow users to provide their own resource content for text |
| resources. Users can clone a resource, and provide their own content |
| (by editing in Web Inspector) and new requests for those particular |
| URLs will get the substitute content. |
| |
| Overrides are based on a particular URL (ignoring fragment). They |
| can override: status code, status text, response headers, content, |
| and MIME Type (Content-Type). |
| |
| * Tools/CodeMirrorModes/index.html: Added. |
| * Tools/CodeMirrorModes/styles.css: Added. |
| Debug tool for CodeMirror editors and our custom CodeMirror modes. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| * Localizations/en.lproj/localizedStrings.js: |
| New files and strings. |
| |
| * UserInterface/Base/HTTPUtilities.js: Added. |
| (WI.httpStatusTextForStatusCode): |
| Translate between typical status codes and status text. |
| |
| * UserInterface/Base/ObjectStore.js: |
| (WI.ObjectStore._open): |
| New persistent store for local resource overrides. |
| |
| * UserInterface/Base/Main.js: |
| (WI.showLocalResourceOverride): |
| Convenience for showing an override file. |
| |
| * UserInterface/Base/URLUtilities.js: |
| (parseURL): |
| Avoid uncaught exceptions with the URL constructor for common WebKit internal sourceURL strings. |
| |
| (WI.urlWithoutFragment): |
| Strip a fragment from a URL. |
| |
| * UserInterface/Controllers/HARBuilder.js: |
| (WI.HARBuilder.fetchType): |
| (WI.HARBuilder.responseSourceFromHARFetchType): |
| Handle new custom response types. |
| |
| * UserInterface/Protocol/NetworkObserver.js: |
| (WI.NetworkObserver.prototype.responseIntercepted): |
| (WI.NetworkObserver): |
| New events. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager): |
| (WI.NetworkManager.supportsLocalResourceOverrides): |
| (WI.NetworkManager.prototype.initializeTarget): |
| (WI.NetworkManager.prototype.get localResourceOverrides): |
| (WI.NetworkManager.prototype.get interceptionEnabled): |
| (WI.NetworkManager.prototype.set interceptionEnabled): |
| (WI.NetworkManager.prototype.addLocalResourceOverride): |
| (WI.NetworkManager.prototype.removeLocalResourceOverride): |
| (WI.NetworkManager.prototype.localResourceOverrideForURL): |
| (WI.NetworkManager.prototype.canBeOverridden): |
| (WI.NetworkManager.prototype.responseIntercepted): |
| (WI.NetworkManager.prototype._handleResourceContentDidChange): |
| (WI.NetworkManager.prototype._persistLocalResourceOverrideSoonAfterContentChange): |
| (WI.NetworkManager.prototype._saveLocalResourceOverrides): |
| (WI.NetworkManager.prototype._extraDomainsActivated): |
| (WI.NetworkManager.prototype.localResourceForURL): Deleted. |
| Handle saving and restoring local resource overrides. |
| Handle responding to a `responseIntercepted` Network protocol event. |
| |
| * UserInterface/Models/LocalResource.js: |
| (WI.LocalResource.fromJSON): |
| (WI.LocalResource.prototype.toJSON): |
| (WI.LocalResource.prototype.get localContent): |
| (WI.LocalResource.prototype.get localContentIsBase64Encoded): |
| (WI.LocalResource.prototype.isLocalResourceOverride): |
| (WI.LocalResource.prototype.updateOverrideContent): |
| Allow a LocalResource to identify itself as an "override". |
| |
| * UserInterface/Models/LocalResourceOverride.js: Added. |
| (WI.LocalResourceOverride.prototype.create): |
| (WI.LocalResourceOverride.fromJSON): |
| (WI.LocalResourceOverride.prototype.toJSON): |
| (WI.LocalResourceOverride.prototype.get url): |
| (WI.LocalResourceOverride.prototype.get localResource): |
| (WI.LocalResourceOverride.prototype.get disabled): |
| (WI.LocalResourceOverride.prototype.set disabled): |
| (WI.LocalResourceOverride.prototype.saveIdentityToCookie): |
| (WI.LocalResourceOverride): |
| Model object for a LocalResourceOverride. This has LocalResource content |
| and an enabled/disabled state. |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.classNamesForResource): |
| (WI.Resource.responseSourceFromPayload): |
| (WI.Resource.prototype.isLocalResourceOverride): |
| (WI.Resource.prototype.async.createLocalResourceOverride): |
| (WI.Resource.classNameForResource): Deleted. |
| Convenience functions and icon updates. |
| |
| * UserInterface/Views/SourcesTabContentView.js: |
| (WI.SourcesTabContentView.prototype.canShowRepresentedObject): |
| * UserInterface/Views/ContentView.js: |
| (WI.ContentView.createFromRepresentedObject): |
| (WI.ContentView.resolvedRepresentedObjectForRepresentedObject): |
| (WI.ContentView.isViewable): |
| Handle new represented object type. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype.createContentTreeOutline): |
| (WI.SourcesNavigationSidebarPanel.prototype.willDismissPopover): |
| (WI.SourcesNavigationSidebarPanel.prototype._willDismissLocalOverridePopover): |
| (WI.SourcesNavigationSidebarPanel.prototype._willDismissEventBreakpointPopover): |
| (WI.SourcesNavigationSidebarPanel.prototype._willDismissURLBreakpointPopover): |
| (WI.SourcesNavigationSidebarPanel.prototype._addLocalResourceOverride): |
| (WI.SourcesNavigationSidebarPanel.prototype._removeLocalResourceOverride): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange): |
| (WI.SourcesNavigationSidebarPanel.prototype._populateCreateBreakpointContextMenu): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleLocalResourceOverrideAdded): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleLocalResourceOverrideRemoved): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.sources > .content > .warning-banner): |
| (.sidebar > .panel.navigation.sources > .content > :matches(.pause-reason-container, .call-stack-container, .breakpoints-container, .local-overrides)): |
| (.sidebar > .panel.navigation.sources > .content > .local-overrides): |
| (.sidebar > .panel.navigation.sources > .content > :matches(.pause-reason-container, .call-stack-container, .breakpoints-container)): Deleted. |
| Hide and show Local Overrides section. |
| |
| * UserInterface/Views/LocalResourceOverrideTreeElement.css: |
| (.item.resource.override .status > div): |
| * UserInterface/Views/LocalResourceOverrideTreeElement.js: Added. |
| (WI.LocalResourceOverrideTreeElement): |
| (WI.LocalResourceOverrideTreeElement.prototype.canSelectOnMouseDown): |
| (WI.LocalResourceOverrideTreeElement.prototype.populateContextMenu): |
| (WI.LocalResourceOverrideTreeElement.prototype.willDismissPopover): |
| TreeElement for a Local Resource Override. |
| |
| * UserInterface/Views/CodeMirrorLocalOverrideURLMode.css: |
| (.cm-s-default .cm-local-override-url-bad-scheme): |
| (.cm-s-default .cm-local-override-url-fragment): |
| * UserInterface/Views/CodeMirrorLocalOverrideURLMode.js: Added. |
| (tokenBase): |
| (return.startState): |
| (return.token): |
| * UserInterface/Views/ContentBrowserTabContentView.js: |
| (WI.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObject): |
| |
| * UserInterface/Views/ContextMenu.js: |
| (WI.ContextMenu.prototype._itemSelected): |
| (WI.ContextMenu): |
| Better debugging for exceptions in context menu handlers. |
| |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForSourceCode): |
| (WI.appendContextMenuItemsForURL): |
| Context menu items for Local Resource Overrides. |
| |
| * UserInterface/Views/DataGrid.js: |
| (WI.DataGrid.prototype.startEditingNode): |
| (WI.DataGrid.prototype._startEditingNodeAtColumnIndex): |
| (WI.DataGrid.prototype._startEditing): |
| (WI.DataGrid.prototype._contextMenuInDataTable): |
| * UserInterface/Views/DataGridNode.js: |
| (WI.DataGridNode): |
| (WI.DataGridNode.prototype.get editable): |
| (WI.DataGridNode.prototype.set editable): |
| Improve DataGrid editing functionality. |
| Allow a node to not be editable. |
| Allow adding a new node and starting to edit in one action. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype.treeElementForRepresentedObject): |
| Do not provide overrides in the Debugger tab. |
| |
| * UserInterface/Views/LocalResourceOverrideLabelView.css: |
| (.local-resource-override-label-view): |
| (.local-resource-override-label-view > div): |
| (.local-resource-override-label-view > div > .label): |
| (.local-resource-override-label-view > div > .url): |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/LocalResourceOverrideLabelView.js: |
| (WI.LocalResourceOverrideLabelView): |
| (WI.LocalResourceOverrideLabelView.prototype.initialLayout): |
| * UserInterface/Views/LocalResourceOverridePopover.css: Added. |
| (.popover .local-resource-override-popover-content): |
| (.popover .local-resource-override-popover-content > label.toggle): |
| (.popover .local-resource-override-popover-content > table): |
| (.popover .local-resource-override-popover-content > table > tr > th): |
| (.popover .local-resource-override-popover-content > table > tr > td): |
| (.popover .local-resource-override-popover-content .editor): |
| (.popover .local-resource-override-popover-content .editor > .CodeMirror): |
| (.popover .local-resource-override-popover-content .editor.url): |
| (.popover .local-resource-override-popover-content .editor.mime): |
| (.popover .local-resource-override-popover-content .editor.status): |
| (.popover .local-resource-override-popover-content .editor.status-text): |
| (.popover .local-resource-override-popover-content .add-header): |
| (@media (prefers-color-scheme: dark)): |
| New banner view for a local resource override itself. |
| Shows the URL being overriden. |
| |
| * UserInterface/Views/LocalResourceOverrideWarningView.css: |
| (.local-resource-override-warning-view): |
| (.local-resource-override-warning-view[hidden]): |
| (.local-resource-override-warning-view > div): |
| (.local-resource-override-warning-view > div > button): |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/LocalResourceOverrideWarningView.js: Added. |
| (WI.LocalResourceOverrideWarningView): |
| (WI.LocalResourceOverrideWarningView.prototype.attached): |
| (WI.LocalResourceOverrideWarningView.prototype.detached): |
| (WI.LocalResourceOverrideWarningView.prototype._updateContent): |
| (WI.LocalResourceOverrideWarningView.prototype._handleLocalResourceOverrideChanged): |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel.prototype.pruneStaleResourceTreeElements): |
| New banner view for a resource that has been overridden. |
| Allows jumping to the override itself. |
| |
| * UserInterface/Views/LocalResourceOverridePopover.js: Added. |
| (WI.LocalResourceOverridePopover): |
| (WI.LocalResourceOverridePopover.prototype.get serializedData): |
| (WI.LocalResourceOverridePopover.prototype.show.addDataGridNodeForHeader): |
| (WI.LocalResourceOverridePopover.prototype.show): |
| (WI.LocalResourceOverridePopover.prototype._createEditor): |
| (WI.LocalResourceOverridePopover.prototype._defaultURL): |
| (WI.LocalResourceOverridePopover.prototype._presentOverTargetElement): |
| New popover for creating or editing a Local Resource Override. |
| |
| * UserInterface/Views/SearchSidebarPanel.js: |
| (WI.SearchSidebarPanel.prototype.performSearch): |
| Consider searching overrides. |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| * UserInterface/Views/SearchSidebarPanel.css: |
| (.sidebar > .panel.navigation.search.changed > .banner): |
| * UserInterface/Views/DebuggerSidebarPanel.css: |
| (.sidebar > .panel.navigation.debugger .warning-banner): |
| * UserInterface/Views/ConsoleMessageView.css: |
| (.console-warning-level): |
| Use a new variable for a common warning color. |
| |
| * UserInterface/Images/NavigationItemNetworkOverride.svg: Added. |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.canBeFormatted): |
| (WI.SourceCodeTextEditor.prototype.get _supportsDebugging): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.sources > .content > .warning-banner): |
| (.sidebar > .panel.navigation.sources > .content > :matches(.pause-reason-container, .call-stack-container, .breakpoints-container, .local-overrides)): |
| (.sidebar > .panel.navigation.sources > .content > .local-overrides): |
| (.sidebar > .panel.navigation.sources > .content > :matches(.pause-reason-container, .call-stack-container, .breakpoints-container)): Deleted. |
| * UserInterface/Views/TextEditor.css: |
| (.text-editor): |
| * UserInterface/Views/TextResourceContentView.css: |
| (.content-view.resource.text): |
| (.content-view.resource.text > .text-editor): |
| * UserInterface/Views/TextResourceContentView.js: |
| (WI.TextResourceContentView): |
| (WI.TextResourceContentView.prototype.get navigationItems): |
| (WI.TextResourceContentView.prototype.closed): |
| (WI.TextResourceContentView.prototype._contentWillPopulate): |
| (WI.TextResourceContentView.prototype._contentDidPopulate): |
| (WI.TextResourceContentView.prototype.async._handleCreateLocalResourceOverride): |
| (WI.TextResourceContentView.prototype._handleRemoveLocalResourceOverride): |
| (WI.TextResourceContentView.prototype._handleLocalResourceOverrideChanged): |
| (WI.TextResourceContentView.prototype._textEditorContentDidChange): |
| (WI.TextResourceContentView.prototype._shouldBeEditable): |
| Allow Text resources to create a local resource override. |
| Support for Image resources will come separately. |
| |
| * UserInterface/Views/ResourceHeadersContentView.js: |
| (WI.ResourceHeadersContentView.prototype._responseSourceDisplayString): |
| Handle new response type. |
| |
| * UserInterface/Controllers/CSSManager.js: |
| Avoid extra handling for Local Resource Overrides. |
| |
| * UserInterface/Views/ResourceIcons.css: |
| (.resource-icon.override .icon): |
| * UserInterface/Views/ResourceSizesContentView.js: |
| (WI.ResourceSizesContentView.prototype.initialLayout): |
| * UserInterface/Views/ResourceTimelineDataGridNode.js: |
| (WI.ResourceTimelineDataGridNode.prototype.iconClassNames): |
| * UserInterface/Views/ResourceTreeElement.js: |
| (WI.ResourceTreeElement.prototype._updateResource): |
| (WI.ResourceTreeElement.prototype._updateIcon): |
| (WI.ResourceTreeElement.prototype._responseReceived): |
| (WI.ResourceTreeElement): |
| * UserInterface/Views/TimelineDataGridNode.js: |
| (WI.TimelineDataGridNode.prototype.createCellContent): |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._populateNameCell): |
| (WI.NetworkTableContentView.prototype._populateTransferSizeCell): |
| (WI.NetworkTableContentView.prototype._generateSortComparator): |
| Better Resource icons all over for overrides. |
| |
| * UserInterface/Views/URLBreakpointPopover.js: |
| (WI.URLBreakpointPopover.prototype._createEditor): |
| Code cleanup. |
| |
| 2019-09-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: provide a way to view XML/HTML/SVG resource responses as a DOM tree |
| https://bugs.webkit.org/show_bug.cgi?id=201046 |
| <rdar://problem/54446087> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ResourceClusterContentView.js: |
| (WI.ResourceClusterContentView): |
| (WI.ResourceClusterContentView.prototype.showRequest): |
| (WI.ResourceClusterContentView.prototype.showResponse): |
| (WI.ResourceClusterContentView.prototype.get customRequestDOMContentView): Added. |
| (WI.ResourceClusterContentView.prototype.get customRequestJSONContentView): Added. |
| (WI.ResourceClusterContentView.prototype.get customResponseDOMContentView): Added. |
| (WI.ResourceClusterContentView.prototype.get customResponseJSONContentView): Added. |
| (WI.ResourceClusterContentView.prototype.get customResponseTextContentView): Added. |
| (WI.ResourceClusterContentView.prototype._createPathComponent): Added. |
| (WI.ResourceClusterContentView.prototype._canShowCustomRequestContentView): |
| (WI.ResourceClusterContentView.prototype._canShowCustomResponseContentView): |
| (WI.ResourceClusterContentView.prototype._contentViewForResourceType): |
| (WI.ResourceClusterContentView.prototype._pathComponentForContentView): |
| (WI.ResourceClusterContentView.prototype._identifierForContentView): |
| (WI.ResourceClusterContentView.prototype._showContentViewForIdentifier): |
| (WI.ResourceClusterContentView.prototype._resourceLoadingDidFinish): |
| (WI.ResourceClusterContentView.prototype._canUseDOMContentViewForContent): Added. |
| (WI.ResourceClusterContentView.prototype._normalizeMIMETypeForDOM): Added. |
| (WI.ResourceClusterContentView.prototype._tryEnableCustomRequestContentViews): Added. |
| (WI.ResourceClusterContentView.prototype._tryEnableCustomResponseContentViews): Added. |
| (WI.ResourceClusterContentView.createPathComponent): Deleted. |
| (WI.ResourceClusterContentView.prototype._tryEnableCustomRequestContentView): Deleted. |
| (WI.ResourceClusterContentView.prototype._tryEnableCustomResponseContentView): Deleted. |
| * UserInterface/Base/Main.js: |
| (WI.showResourceRequest): |
| * UserInterface/Views/PathComponentIcons.css: |
| (.object-icon .icon): Added. |
| * UserInterface/Main.html: |
| * UserInterface/Views/SVGImageResourceClusterContentView.js: Removed. |
| Reworked to allow more than one custom request/response content view at the same time. As |
| such, merge the `WI.SVGImageResourceClusterContentView` into this class. |
| |
| * UserInterface/Views/LocalRemoteObjectContentView.js: Added. |
| (WI.LocalRemoteObjectContentView): |
| (WI.LocalRemoteObjectContentView.prototype.get expression): |
| (WI.LocalRemoteObjectContentView.prototype.renderRemoteObject): |
| (WI.LocalRemoteObjectContentView.prototype.initialLayout): |
| (WI.LocalRemoteObjectContentView.prototype.attached): |
| (WI.LocalRemoteObjectContentView.prototype.closed): |
| * UserInterface/Views/LocalRemoteObjectContentView.css: Added. |
| (.content-view.local-remote-object): |
| * UserInterface/Views/LocalDOMContentView.js: Added. |
| (WI.LocalDOMContentView): |
| (WI.LocalDOMContentView.prototype.get expression): |
| (WI.LocalDOMContentView.prototype.renderRemoteObject): |
| * UserInterface/Views/LocalJSONContentView.js: Added. |
| (WI.LocalJSONContentView): |
| (WI.LocalJSONContentView.prototype.get expression): |
| (WI.LocalJSONContentView.prototype.renderRemoteObject): |
| * UserInterface/Views/JSONContentView.js: Removed. |
| * UserInterface/Views/JSONContentView.css: Removed. |
| Rework `WI.JSONContentView` into a more generic set of classes that render an object we send |
| to the inspected page for instrumentation. |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype.populateContextMenu): |
| (WI.DOMTreeOutline.prototype._onmousemove): |
| (WI.DOMTreeOutline.prototype._onmouseout): |
| (WI.DOMTreeOutline.prototype._ondragstart): |
| (WI.DOMTreeOutline.prototype._ondragover): |
| (WI.DOMTreeOutline.prototype._ondragleave): |
| (WI.DOMTreeOutline.prototype._ondragend): |
| (WI.DOMTreeOutline.prototype._hideElements): |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype.populateDOMNodeContextMenu): |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForDOMNode): |
| Ensure that interactions that would modify the DOM tree only happen when editable. If the |
| `WI.DOMTreeOutline` represents a "local" `WI.DOMNode` (one that's been sent to the inspected |
| page for instrumentation, and shouldn't be part of the main #document), don't allow any |
| editing actions to be performed. |
| |
| * UserInterface/Views/TextContentView.js: |
| (WI.TextContentView): |
| Allow a `representedObject` object to be provided and used instead of the given `string`. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Images/Object.svg: Added. |
| |
| 2019-09-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: implement blackboxing of script resources |
| https://bugs.webkit.org/show_bug.cgi?id=17240 |
| <rdar://problem/5732847> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| When a script is blackboxed and the debugger attempts to pause in that script, the pause |
| reason/data will be saved and execution will continue until it has left the blackboxed |
| script. Once outside, execution is paused with the saved reason/data. |
| |
| This is especially useful when debugging issues using libraries/frameworks, as it allows the |
| developer to "skip" the internal logic of the library/framework and instead focus only on |
| how they're using it. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager): |
| (WI.DebuggerManager.prototype.initializeTarget): |
| (WI.DebuggerManager.supportsBlackboxingScripts): Added. |
| (WI.DebuggerManager.pauseReasonFromPayload): Added. |
| (WI.DebuggerManager.prototype.isScriptBlackboxed): Added. |
| (WI.DebuggerManager.prototype.setShouldBlackboxScript): Added. |
| (WI.DebuggerManager.prototype._pauseReasonFromPayload): |
| (WI.DebuggerManager.prototype._pauseReasonFromPayload): Deleted. |
| |
| * UserInterface/Models/SourceCode.js: |
| (WI.SourceCode.prototype.get isScript): Added. |
| (WI.SourceCode.prototype.get supportsScriptBlackboxing): Added. |
| * UserInterface/Models/Script.js: |
| (WI.Script.prototype.get isScript): Added. |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.prototype.get isScript): Added. |
| Provide a more straightforward way of determining if a `WI.SourceCode` is a script. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._updatePauseReason): |
| (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel.prototype._updatePauseReason): |
| (WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection): |
| Display the original pause reason and breakpoint (if applicable) when pausing after leaving |
| a blackboxed script. |
| |
| * UserInterface/Views/SourceCodeTreeElement.js: |
| (WI.SourceCodeTreeElement.prototype.canSelectOnMouseDown): Added. |
| (WI.SourceCodeTreeElement.prototype.updateStatus): Added. |
| (WI.SourceCodeTreeElement.prototype._updateSourceCode): |
| (WI.SourceCodeTreeElement.prototype._updateToggleBlackboxImageElementState): Added. |
| (WI.SourceCodeTreeElement.prototype._handleToggleBlackboxedImageElementClick): Added. |
| * UserInterface/Views/SourceCodeTreeElement.css: Added. |
| (.tree-outline .item .status > .toggle-script-blackboxed): |
| (.tree-outline:not(.navigation-sidebar-panel-content-tree-outline) .item .status > .toggle-script-blackboxed,): |
| (.tree-outline:focus .item.selected .status > .toggle-script-blackboxed): |
| (.tree-outline .item .status > .toggle-script-blackboxed.blackboxed): |
| (@media (prefers-color-scheme: dark) .tree-outline .item .status > .toggle-script-blackboxed): |
| |
| * UserInterface/Views/ResourceTreeElement.js: |
| (WI.ResourceTreeElement.prototype._updateResource): |
| (WI.ResourceTreeElement.prototype.updateStatus): Added. |
| (WI.ResourceTreeElement.prototype._updateStatus): Deleted. |
| Make sure that the loading indicator doesn't override the blackbox toggle. |
| |
| * UserInterface/Base/Setting.js: |
| (WI.Setting.prototype.set value): |
| (WI.Setting.prototype.save): Added. |
| When modifying an array value, that doesn't go through `WI.Setting.prototype.set value`, so |
| we need a more "manual" way of saving the new value. |
| |
| * UserInterface/Main.html: |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Test/TestHarness.js: |
| (TestHarness.prototype.newline): Added. |
| (TestHarness.prototype.expectException): |
| Add a special case for logging error message objects when running protocol tests. |
| |
| 2019-08-29 Keith Rollin <krollin@apple.com> |
| |
| Update .xcconfig symbols to reflect the current set of past and future product versions. |
| https://bugs.webkit.org/show_bug.cgi?id=200720 |
| <rdar://problem/54305032> |
| |
| Reviewed by Alex Christensen. |
| |
| Remove version symbols related to old OS's we no longer support, |
| ensure that version symbols are defined for OS's we do support. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| * Configurations/Version.xcconfig: |
| |
| 2019-08-29 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOMDebugger: support event breakpoints in Worker contexts |
| https://bugs.webkit.org/show_bug.cgi?id=200651 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager.prototype._updateDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype._updateEventBreakpoint): |
| Add assertions when adding/removing DOM breakpoints or animation frame event breakpoints if |
| the target is a `WI.WorkerTarget`, as neither are supported by `Worker`s. |
| |
| 2019-08-29 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: replace uses of `Array.prototype.concat` with `Array.prototype.push` |
| https://bugs.webkit.org/show_bug.cgi?id=201082 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| `x = x.concat(y)` is very slow, as `x` has to be fully copied in order to add `y` to it. |
| Introduce `Array.prototype.pushIterable`, which iterates the given `iterable` and adds each |
| item to the `this` array. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager.prototype.get domBreakpoints): |
| (WI.DOMDebuggerManager.prototype.domBreakpointsInSubtree): |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| (WI.JavaScriptRuntimeCompletionProvider.completionControllerCompletionsNeeded.receivedPropertyNames): |
| * UserInterface/Models/CSSCompletions.js: |
| (WI.CSSCompletions): |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| (WI.CSSKeywordCompletions.forProperty): |
| (WI.CSSKeywordCompletions.forProperty.addKeywordsForName): |
| (WI.CSSKeywordCompletions.forFunction): |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.prototype.recordingProgress): |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype._updateStyleCascade): |
| (WI.DOMNodeStyles.prototype._collectStylesInCascadeOrder): |
| * UserInterface/Models/TimelineRecording.js: |
| (WI.TimelineRecording.prototype.get sourceCodeTimelines): |
| (WI.TimelineRecording.prototype.initializeCallingContextTrees): |
| * UserInterface/Protocol/RemoteObject.js: |
| (WI.RemoteObject.prototype._getPropertyDescriptorsResolver): |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WI.ConsoleMessageView.prototype._appendMessageTextAndArguments): |
| * UserInterface/Views/ContentBrowser.js: |
| (WI.ContentBrowser.prototype.get currentRepresentedObjects): |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype._visibleChildren): |
| * UserInterface/Views/DataGridNode.js: |
| (WI.DataGridNode.prototype.get filterableData): |
| * UserInterface/Views/HeapAllocationsTimelineView.js: |
| (WI.HeapAllocationsTimelineView.prototype.get selectionPathComponents): |
| * UserInterface/Views/IndexedDatabaseObjectStoreContentView.js: |
| (WI.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData.processEntries): |
| * UserInterface/Views/NavigationItem.js: |
| (WI.NavigationItem.prototype.get _classNames): |
| * UserInterface/Views/ObjectTreeView.js: |
| (WI.ObjectTreeView.prototype._updateProperties): |
| * UserInterface/Views/OpenResourceDialog.js: |
| (WI.OpenResourceDialog.prototype._addResourcesForFrame): |
| * UserInterface/Views/OverviewTimelineView.js: |
| (WI.OverviewTimelineView.prototype._loadExistingRecords): |
| * UserInterface/Views/ResourceCollectionContentView.js: |
| (WI.ResourceCollectionContentView.prototype.get navigationItems): |
| * UserInterface/Views/ResourceHeadersContentView.js: |
| (WI.ResourceHeadersContentView.prototype._perfomSearchOnKeyValuePairs): |
| * UserInterface/Views/ResourceSecurityContentView.js: |
| (WI.ResourceSecurityContentView.prototype._perfomSearchOnKeyValuePairs): |
| * UserInterface/Views/ScriptClusterTimelineView.js: |
| (WI.ScriptClusterTimelineView.prototype.get selectionPathComponents): |
| * UserInterface/Views/ScrubberNavigationItem.js: |
| (WI.ScrubberNavigationItem.prototype.get additionalClassNames): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._addGradientTokens): |
| (WI.SpreadsheetStyleProperty.prototype._addColorTokens.pushPossibleColorToken): |
| (WI.SpreadsheetStyleProperty.prototype._addTimingFunctionTokens): |
| (WI.SpreadsheetStyleProperty.prototype._addVariableTokens): |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.selfOrDescendant): |
| * UserInterface/Views/View.js: |
| (WI.View._visitViewTreeForLayout): |
| |
| 2019-08-29 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION (r248873): Debugger: pressing delete on a breakpoint will also delete any resource/element parent immediately before it in the list |
| https://bugs.webkit.org/show_bug.cgi?id=200939 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement): |
| (WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): |
| (WI.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement.checkIfSelectionAdjustmentNeeded): Deleted. |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): |
| (WI.SourcesNavigationSidebarPanel.this._breakpointsTreeOutline.ondelete.checkIfSelectionAdjustmentNeeded): Deleted. |
| When the `WI.TreeOutline`'s own `ondelete` is called, that means we must be handling a |
| delete that was _not_ handled by a `WI.TreeElement`. This means that the `selectedTreeElement` |
| has to be a resource/script, the `window` object, or one of the non-deletable breakpoints. |
| |
| In the case of a non-deletable breakpoint, since they're never removed from their parent |
| `WI.TreeOutline`, we just shift the selection to the next selectable `WI.TreeElement`. |
| |
| Otherwise, wait for the `WI.TreeOutline.Event.ElementRemoved` event to be fired, and adjust |
| the selection then based on whether the new `selectedTreeElement` is one of the "top" items, |
| namely the "All Exceptions", "Uncaught Exceptions", and "Assertion Failures" breakpoints. |
| |
| * UserInterface/Views/BreakpointTreeElement.js: |
| (WI.BreakpointTreeElement.prototype.ondelete): |
| * UserInterface/Views/DOMBreakpointTreeElement.js: |
| (WI.DOMBreakpointTreeElement.prototype.ondelete): |
| * UserInterface/Views/DOMNodeTreeElement.js: |
| (WI.DOMNodeTreeElement.prototype.ondelete): |
| * UserInterface/Views/EventBreakpointTreeElement.js: |
| (WI.EventBreakpointTreeElement.prototype.ondelete): |
| * UserInterface/Views/URLBreakpointTreeElement.js: |
| (WI.URLBreakpointTreeElement.prototype.ondelete): |
| Add `return true;` to let the parent `WI.TreeOutline` know that the delete event was handled. |
| This prevents the parent `WI.TreeOutline`'s own `ondelete` from being called, which would |
| cause a double-delete as there would be a different `selectedTreeElement`. |
| |
| 2019-08-29 Keith Rollin <krollin@apple.com> |
| |
| Remove support for macOS < 10.13 (part 3) |
| https://bugs.webkit.org/show_bug.cgi?id=201224 |
| <rdar://problem/54795934> |
| |
| Reviewed by Darin Adler. |
| |
| Remove symbols in WebKitTargetConditionals.xcconfig related to macOS |
| 10.13, including WK_MACOS_1013 and WK_MACOS_BEFORE_1013, and suffixes |
| like _MACOS_SINCE_1013. |
| |
| Also added some macOS target numbers. |
| |
| * Configurations/WebKitTargetConditionals.xcconfig: |
| |
| 2019-08-29 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Import file pickers sometimes do not import |
| https://bugs.webkit.org/show_bug.cgi?id=201290 |
| <rdar://problem/54826117> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/FileUtilities.js: |
| (WI.FileUtilities.importText): |
| (WI.FileUtilities.importJSON): |
| Keep the input element alive so it doesn't get garbage collected, |
| which makes the file chooser do nothing. |
| |
| (WI.FileUtilities.save): |
| (WI.FileUtilities.async.readText): |
| Place read operations after event handlers are setup in case the |
| read operations can happen synchronously and events may not fire. |
| |
| 2019-08-28 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r249078): JavaScript autocomplete doesn't work when evaluating properties of values |
| https://bugs.webkit.org/show_bug.cgi?id=201226 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| r249078 modified `WI.JavaScriptRuntimeCompletionProvider` to use arrays of property names |
| instead of objects for completion, but a few code paths were missed. |
| |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.evaluated): |
| (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNamesFromEvaluate): |
| (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedObjectPropertyNames): Added. |
| (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedArrayPropertyNames): |
| |
| * UserInterface/Models/CallFrame.js: |
| (WI.CallFrame.prototype.collectScopeChainVariableNames): |
| (WI.CallFrame.prototype.collectScopeChainVariableNames.propertiesCollected): |
| |
| 2019-08-27 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: replace uses of added utility `Array.prototype.keySet` with an actual `Set` |
| https://bugs.webkit.org/show_bug.cgi?id=201194 |
| |
| Reviewed by Ross Kirsling. |
| |
| They both have basically the same functionality, with one difference being that a `Set` can |
| work with arrays that have non-string values. |
| |
| * UserInterface/Base/Utilities.js: |
| (Array.prototype.keySet): Deleted. |
| * UserInterface/Controllers/CodeMirrorCompletionController.js: |
| (WI.CodeMirrorCompletionController.prototype._generateJavaScriptCompletions): |
| (WI.CodeMirrorCompletionController.prototype._generateJavaScriptCompletions.matchKeywords): |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| (WI.JavaScriptRuntimeCompletionProvider.completionControllerCompletionsNeeded.receivedPropertyNames): |
| |
| 2019-08-27 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: change the styling of the special log "bubble" to match WI.ScopeBar |
| https://bugs.webkit.org/show_bug.cgi?id=201152 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ConsoleMessageView.css: |
| (.console-user-command.special-user-log > .console-message-body): |
| |
| 2019-08-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: decrease horizontal padding of `WI.ScopeBar` to have more room |
| https://bugs.webkit.org/show_bug.cgi?id=201090 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| There's a lot of "wasted" padding space around each item that we could reuse (or "move") for |
| other navigation items. |
| |
| * UserInterface/Views/FilterBar.css: |
| (.filter-bar > .navigation-bar > .item.scope-bar): |
| * UserInterface/Views/RadioButtonNavigationItem.css: |
| (.navigation-bar .item.radio.button.text-only): |
| * UserInterface/Views/ScopeBar.css: |
| (.scope-bar): |
| (body[dir=ltr] .scope-bar > li.multiple > select): |
| (body[dir=rtl] .scope-bar > li.multiple > select): |
| (.scope-bar > li.multiple > .arrows): |
| |
| * UserInterface/Views/RadioButtonNavigationItem.js: |
| (WI.RadioButtonNavigationItem): |
| (WI.RadioButtonNavigationItem.prototype.update): Deleted. |
| There's no reason to forcibly set the `min-width` since all instances are just text. |
| |
| * UserInterface/Views/AuditTestGroupContentView.js: |
| (WI.AuditTestGroupContentView.prototype.initialLayout): |
| * UserInterface/Views/AuditTestGroupContentView.css: |
| (.content-view.audit-test-group > header > nav:not(:empty):before): Deleted. |
| Remove the unnecessary "Showing: " prefix before the `WI.ScopeBar`. |
| |
| * UserInterface/Views/ScopeRadioButtonNavigationItem.js: Removed. |
| * UserInterface/Views/ScopeRadioButtonNavigationItem.css: Removed. |
| These classes were never used. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-08-24 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: "Copy Rule" menu item does not propagate comments properly |
| https://bugs.webkit.org/show_bug.cgi?id=201095 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype.commentOut): |
| (WI.CSSProperty.prototype.get formattedText): |
| Wrap the `text` in `/* ${text} */` if the `WI.CSSProperty` isn't `enabled` (e.g. commented out). |
| |
| 2019-08-23 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: create additional command line api functions for other console methods |
| https://bugs.webkit.org/show_bug.cgi?id=200971 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Expose all `console.*` functions in the command line API, since they're all already able to |
| be referenced via the `console` object. |
| |
| Provide a simpler interface for other injected scripts to modify the command line API. |
| |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| (WI.JavaScriptRuntimeCompletionProvider.prototype.get _commandLineAPIKeys): Added. |
| (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.updateLastPropertyNames): |
| (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNames): |
| |
| 2019-08-23 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: transparency checkerboard is too bright in dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=201067 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/Main.css: |
| (@media (prefers-color-scheme: dark) :matches(img, canvas).show-grid): |
| * UserInterface/Views/ConsoleMessageView.css: |
| (.console-message-body > .show-grid): |
| |
| 2019-08-22 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Console: automatically select the "Evaluations" filter whenever running commands |
| https://bugs.webkit.org/show_bug.cgi?id=201060 |
| |
| Reviewed by Timothy Hatcher. |
| |
| If the Console is actively being filtered (e.g. not "All"), it can be confusing to run a |
| command, only to not see any results. We should automatically enable the "Evaluations" |
| filter in addition to any other existing filters in these cases. |
| |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView.prototype.didAppendConsoleMessageView): |
| * UserInterface/Views/ScopeBarItem.js: |
| (WI.ScopeBarItem.prototype.set selected): |
| (WI.ScopeBarItem.prototype.toggle): Added. |
| |
| 2019-08-22 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r248485): stack overflow when viewing a source map generated from inline content |
| https://bugs.webkit.org/show_bug.cgi?id=201042 |
| <rdar://problem/54509750> |
| |
| Reviewed by Antoine Quint. |
| |
| In r248485, `WI.ResourceClusterContentView` was changed to `requestContent` whenever the |
| given resource finished loading (by listening for `WI.Resource.Event.LoadingDidFinish`). |
| |
| Even though retrieving a source map's contents uses `Promise`s, in the case that the content |
| was inlined in the "original" source code, the code path would mark the source map as being |
| finished (which would fire a `WI.Resource.Event.LoadingDidFinish`) _before_ it could return |
| a `Promise`, which would've been cached (`WI.SourceCode.prototype.requestContent`) and |
| preventend any reentrancy. |
| |
| Wrapping the inline code path in a `Promise.resolve()` gives the `WI.SourceCode` a chance to |
| cache the `Promise` before any events are fired. |
| |
| * UserInterface/Models/SourceMapResource.js: |
| (WI.SourceMapResource.prototype.requestContentFromBackend): |
| |
| 2019-08-22 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: console.dir should expand objects |
| https://bugs.webkit.org/show_bug.cgi?id=152039 |
| <rdar://problem/23816853> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Expand objects logged by console.dir but keep them collapsed when logged by console.log. |
| |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WI.ConsoleMessageView.prototype.render): |
| |
| 2019-08-22 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Cleanup some unused code |
| https://bugs.webkit.org/show_bug.cgi?id=201041 |
| |
| Reviewed by Alex Christensen. |
| |
| * UserInterface/Views/CPUUsageCombinedView.css: |
| (.cpu-usage-combined-view > .graph > .stacked-area-chart): |
| * UserInterface/Views/CPUUsageCombinedView.js: |
| (WI.CPUUsageCombinedView): |
| * UserInterface/Views/MediaTimelineOverviewGraph.js: |
| (WI.MediaTimelineOverviewGraph): |
| |
| 2019-08-22 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Provide an engineering option to log protocol traffic as text |
| https://bugs.webkit.org/show_bug.cgi?id=200969 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Protocol/LoggingProtocolTracer.js: |
| (WI.LoggingProtocolTracer.prototype._processEntry): |
| (WI.LoggingProtocolTracer): |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createDebugSettingsView): |
| |
| 2019-08-21 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: RTL: DOM outline in Elements tab should be LTR |
| https://bugs.webkit.org/show_bug.cgi?id=200601 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Make DOM outlines in Console and Elements tab always LTR, |
| and unsure that Left and Right arrow keys continue working correctly. |
| |
| * UserInterface/Base/Main.js: |
| (WI.resolveLayoutDirectionForElement): Added. |
| The existing WI.resolvedLayoutDirection function returns the value of the root DOM element. |
| The newly added resolveLayoutDirectionForElement function returns the correct value for any element, |
| including elements with `dir=ltr` inside of `<body dir=rtl>`. |
| |
| * UserInterface/Views/DOMTreeOutline.css: |
| (.tree-outline.dom li:matches(.hovered, .selected) + ol.children.expanded): |
| (.tree-outline.dom li:not(.editing)): |
| (.tree-outline.dom li.editing): |
| (.tree-outline.dom li .pseudo-class-indicator): |
| (.tree-outline.dom.single-node li): |
| (.tree-outline.dom li.parent): |
| (.tree-outline.dom li .html-tag.close): |
| (.tree-outline.dom li.parent::before): |
| (.tree-outline.dom li.parent.shadow::after): |
| Remove RTL logic. |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype._treeKeyDown): |
| Make Left and Right arrow keys work correctly for LTR DOM outlines inside of the global RTL. |
| |
| 2019-08-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Page: re-add enable/disable after r248454 |
| https://bugs.webkit.org/show_bug.cgi?id=200947 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| We shouldn't design the agent system with only Web Inspector in mind. Other clients may want |
| to have different functionality, not being told about frames creation/updates/destruction. |
| In these cases, we should have graceful error message failures for other agents that rely on |
| the Page agent. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype.initializeTarget): |
| |
| 2019-08-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: increase the filter bar's width when it's focused if a resource type filter is active |
| https://bugs.webkit.org/show_bug.cgi?id=200940 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/FilterBar.js: |
| (WI.FilterBar.prototype._handleFilterChanged): |
| (WI.FilterBar.prototype.get indicatingProgress): Deleted. |
| (WI.FilterBar.prototype.set indicatingProgress): Deleted. |
| (WI.FilterBar.prototype.get indicatingActive): Deleted. |
| (WI.FilterBar.prototype.set indicatingActive): Deleted. |
| If escape is pressed when the <input> is empty, unfocus (blur) the <input>. |
| Drive-by: remove unused/unnecessary functions. |
| |
| * UserInterface/Views/FilterBar.css: |
| (.filter-bar > input[type="search"]): |
| (:matches(.filter-bar, .search-bar) > input[type="search"]): Added. |
| (:matches(.filter-bar, .search-bar) > input[type="search"]:matches(:focus, :not(:placeholder-shown))): Added. |
| (:matches(.filter-bar, .search-bar) > input[type="search"]::-webkit-search-decoration): Added. |
| (:matches(.filter-bar, .search-bar) > input[type="search"]::-webkit-search-results-button): Added. |
| (:matches(.filter-bar, .search-bar) > input[type="search"]::placeholder): Added. |
| (:matches(.filter-bar, .search-bar) > input[type="search"]:matches(:not(:focus), :placeholder-shown)::-webkit-search-cancel-button): Added. |
| (:matches(.filter-bar, .search-bar) > .navigation-bar + input[type="search"]): Added. |
| (:matches(.filter-bar, .search-bar) > input[type="search"]:focus): Added. |
| (:matches(.filter-bar, .search-bar) > input[type="search"] + :empty): Added. |
| (:matches(.filter-bar, .search-bar) > input[type="search"]:focus ~ *): Added. |
| (:matches(.filter-bar, .search-bar) > input[type="search"] + .navigation-bar > .item.scope-bar:last-child): Added. |
| (.filter-bar > input[type="search"] + .navigation-bar > .item.scope-bar:last-child): Deleted. |
| (.filter-bar > .navigation-bar + input[type="search"]): Deleted. |
| (.filter-bar > input[type="search"]::placeholder): Deleted. |
| (.filter-bar > input[type="search"]:focus): Deleted. |
| (.filter-bar > input[type="search"]::-webkit-search-decoration): Deleted. |
| (.filter-bar.active > input[type="search"]::-webkit-search-decoration): Deleted. |
| (.filter-bar.indicating-progress > input[type="search"]::-webkit-search-decoration): Deleted. |
| (.filter-bar > input[type="search"] + .navigation-bar:empty): Deleted. |
| When the <input> is `:focus`, hide the following `WI.NavigationBar` (if it's being used) so |
| that there's more room to show the filter text. |
| Drive-by: fix background, border, and text color styling when `:focus`. |
| |
| * UserInterface/Views/SearchBar.css: |
| (.search-bar > input[type="search"]): |
| (.search-bar > input[type="search"]::placeholder): Deleted. |
| (.search-bar > input[type="search"]:focus): Deleted. |
| (.search-bar > input[type="search"]:not(:placeholder-shown)): Deleted. |
| (.search-bar > input[type="search"]:placeholder-shown::-webkit-search-cancel-button): Deleted. |
| (@media (prefers-color-scheme: dark)): Deleted. |
| (:matches(.search-bar, .filter-bar) > input[type="search"],): Deleted. |
| (:matches(.search-bar, .filter-bar) > input[type="search"]::placeholder): Deleted. |
| (:matches(.search-bar, .filter-bar) > input[type="search"]:focus): Deleted. |
| * UserInterface/Views/SearchSidebarPanel.css: |
| (.sidebar > .panel.navigation.search > .search-bar): |
| (.sidebar > .panel.navigation.search > .search-bar > input[type="search"]): |
| (.sidebar > .panel.navigation.search > .search-bar > .search-settings): Added. |
| (.sidebar > .panel.navigation.search > .search-bar > input[type="search"]::-webkit-search-results-button): Deleted. |
| * UserInterface/Views/Toolbar.css: |
| (.toolbar .search-bar > input[type="search"]::-webkit-textfield-decoration-container): Deleted. |
| Move shared styles to FilterBar.css as `WI.FilterBar` are more common. |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| (@media (prefers-color-scheme: dark) :root): |
| Expose some CSS variables in light mode that were previously only defined in dark mode. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._updateFilteredEntries): |
| (WI.NetworkTableContentView.prototype._updateURLFilterActiveIndicator): Deleted. |
| * UserInterface/Images/FilterFieldActiveGlyph.svg: Removed. |
| |
| 2019-08-21 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Remove unnecessary properties on SVGs |
| https://bugs.webkit.org/show_bug.cgi?id=200968 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Images/EventPause.svg: |
| * UserInterface/Images/EventPlay.svg: |
| * UserInterface/Images/EventProcessing.svg: |
| * UserInterface/Images/EventStop.svg: |
| * UserInterface/Images/MediaInstrument.svg: |
| |
| 2019-08-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Implement `queryHolders` Command Line API |
| https://bugs.webkit.org/show_bug.cgi?id=200458 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Call `queryHolders(object)` from the Console to return an array of objects that strongly |
| reference the given `object`. This could be very useful for finding JavaScript "leaks". |
| |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| |
| 2019-08-20 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Address a few Esprima issues preventing pretty printing of resources |
| https://bugs.webkit.org/show_bug.cgi?id=200935 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Address a few Esprima issues: |
| |
| Issue #1991 - Failure to parse template literal with destructuring assignment expression |
| https://github.com/jquery/esprima/issues/1991 |
| |
| Issue #1920 - Invalid Left Hand Side in for-in |
| https://github.com/jquery/esprima/issues/1920 |
| |
| * UserInterface/External/Esprima/esprima.js: |
| |
| 2019-08-20 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Update CodeMirror to support numeric separators in JavaScript numbers |
| https://bugs.webkit.org/show_bug.cgi?id=200942 |
| |
| Cherry-pick a few CodeMirror changes: |
| |
| [javascript mode] Support numeric separators |
| https://github.com/codemirror/CodeMirror/commit/beab8ed123683416bfec934df73d13401ec086b5#diff-9812850bb71d31e8dd60b476abb2bae8 |
| |
| [javascript mode] fix tokenizing of underscore properties |
| https://github.com/codemirror/CodeMirror/commit/463ea2c34ab442c0cae1d9732305219ca9b04dfe#diff-9812850bb71d31e8dd60b476abb2bae8 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/External/CodeMirror/javascript.js: |
| |
| 2019-08-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: move the resource type scope bar to be next to the filter |
| https://bugs.webkit.org/show_bug.cgi?id=200891 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| It's odd to have UI for controlling the active filters in two different places. Move the |
| resource type `WI.ScopeBar` to the filter bar area, and "promote" the resource grouping mode |
| items from a context menu to an always visible `WI.ScopeBar` in the space left by the |
| resource type `WI.ScopeBar` (switching between grouping modes quickly is a useful workflow). |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype.hasCustomFilters): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeScopeBarSelectionChanged): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeChanged): |
| (WI.SourcesNavigationSidebarPanel.prototype._populateResourceGroupingModeContextMenu.addOption): Deleted. |
| (WI.SourcesNavigationSidebarPanel.prototype._populateResourceGroupingModeContextMenu): Deleted. |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.sources > .filter-bar .sources-resource-type-scope-bar.default-item-selected:not(:hover)): Added. |
| (.sidebar > .panel.navigation.sources > .filter-bar .sources-resource-type-scope-bar.default-item-selected:hover): Added. |
| |
| * UserInterface/Views/FilterBar.js: |
| (WI.FilterBar.prototype.addFilterNavigationItem): Added. |
| (WI.FilterBar.prototype.addFilterBarButton): |
| * UserInterface/Views/FilterBar.css: |
| (.filter-bar > .navigation-bar > .item): |
| (.filter-bar > .navigation-bar > .item.button): Added. |
| (.filter-bar > .navigation-bar > .item.scope-bar): Added. |
| (.filter-bar > input[type="search"] + .navigation-bar > .item.scope-bar:last-child): Added. |
| Provide a way to add arbitrary `WI.NavigationItem` to the contained `WI.NavigationBar`. |
| Slightly adjust the spacing of the items (depending on their type) in the `WI.NavigationBar` |
| so they are all centered. |
| |
| * UserInterface/Views/ScopeBar.css: |
| (.scope-bar): |
| (.scope-bar > li): |
| (.scope-bar > li::after): |
| (.scope-bar > li:not(.selected):hover): Added. |
| (body[dir=ltr] .scope-bar > li.multiple > select): |
| (body[dir=rtl] .scope-bar > li.multiple > select): |
| (.scope-bar > li:not(.selected):hover::after): Added. |
| Introduce CSS variables for `margin`, `padding`, and `opacity` that callers can override to |
| customize the appearance of the `WI.ScopeBar`. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-08-20 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Sources: Give Origins their own icon in the Sources sidebar |
| https://bugs.webkit.org/show_bug.cgi?id=200683 |
| <rdar://problem/54269044> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Images/Origin.svg: Added. |
| * UserInterface/Main.html: |
| New resources. |
| |
| * UserInterface/Views/FolderIcon.css: |
| (.origin-icon .icon): |
| Light and Dark appearances for Origin icons. |
| |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/OriginTreeElement.js: |
| (WI.OriginTreeElement): |
| Very much like a folder with different classes. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match): |
| (WI.SourcesNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters): |
| (WI.SourcesNavigationSidebarPanel.prototype._compareTreeElements): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeChanged): |
| Use OriginTreeElement in a few places. |
| |
| 2019-08-20 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Support for JavaScript BigInt |
| https://bugs.webkit.org/show_bug.cgi?id=180731 |
| <rdar://problem/36298748> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/External/CodeMirror/javascript.js: |
| (expressionAllowed): |
| Cherry-pick BigInt JavaScript mode support from CodeMirror: |
| https://github.com/codemirror/CodeMirror/pull/5411 |
| |
| * UserInterface/Images/TypeBigInt.svg: Added. |
| * UserInterface/Views/Variables.css: |
| (:root): |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/CodeMirrorAdditions.js: |
| * UserInterface/Views/SyntaxHighlightingDefaultTheme.css: |
| (.cm-s-default .cm-number.cm-bigint,): |
| * UserInterface/Views/ObjectTreePropertyTreeElement.css: |
| (.object-tree-property.bigint > .icon): |
| * UserInterface/Views/HeapSnapshotInstancesContentView.css: |
| (.heap-snapshot .icon.bigint): |
| Style BigInt similiar but different from numbers but with |
| a [B] icon instead of [N]. |
| |
| * UserInterface/Views/FormattedValue.css: |
| (.formatted-bigint): |
| * UserInterface/Views/FormattedValue.js: |
| (WI.FormattedValue.hasSimpleDisplay): |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression.populate): |
| (WI.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression): |
| Simple value formatting for the new type. |
| |
| * UserInterface/Models/TypeSet.js: |
| (WI.TypeSet): |
| (WI.TypeSet.prototype.get primitiveTypeNames): |
| * UserInterface/Views/TypeTokenView.css: |
| (.type-token-bigint): |
| * UserInterface/Views/TypeTokenView.js: |
| (WI.TypeTokenView.prototype._displayTypeName): |
| (WI.TypeTokenView): |
| New type handling for the Type profiler. |
| |
| * UserInterface/Protocol/RemoteObject.js: |
| (WI.RemoteObject): |
| (WI.RemoteObject.createBigIntFromDescriptionString): |
| * UserInterface/Views/HeapSnapshotClusterContentView.js: |
| (WI.HeapSnapshotClusterContentView.iconStyleClassNameForClassName): |
| * UserInterface/Views/HeapSnapshotInstanceDataGridNode.js: |
| (WI.HeapSnapshotInstanceDataGridNode.prototype._populatePreview): |
| BigInt values are not tied to a GlobalObject, so do some special casing |
| in the Heap output (like Strings) so we get a preview. |
| |
| 2019-08-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Use URL constructor to better handle all kinds of URLs |
| https://bugs.webkit.org/show_bug.cgi?id=165155 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/URLUtilities.js: |
| (parseURL): |
| |
| 2019-08-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: add a global breakpoint for pausing in the next microtask |
| https://bugs.webkit.org/show_bug.cgi?id=200652 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager): |
| (WI.DebuggerManager.prototype.initializeTarget): |
| (WI.DebuggerManager.prototype.get allMicrotasksBreakpoint): ADded. |
| (WI.DebuggerManager.prototype.isBreakpointSpecial): |
| (WI.DebuggerManager.prototype._pauseReasonFromPayload): |
| (WI.DebuggerManager.prototype._breakpointDisabledStateDidChange): |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| (WI.DebuggerSidebarPanel.prototype.saveStateToCookie): |
| (WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie): |
| (WI.DebuggerSidebarPanel.prototype._addBreakpoint): |
| (WI.DebuggerSidebarPanel.prototype._addTreeElement): |
| (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection): |
| (WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): |
| (WI.DebuggerSidebarPanel.prototype._populateCreateBreakpointContextMenu): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype._insertDebuggerTreeElement): |
| (WI.SourcesNavigationSidebarPanel.prototype._addBreakpoint): |
| (WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): |
| (WI.SourcesNavigationSidebarPanel.prototype._populateCreateBreakpointContextMenu): |
| |
| * UserInterface/Views/BreakpointTreeElement.css: |
| (.breakpoint-microtask-icon .icon): Added. |
| * UserInterface/Images/Microtask.svg: Added. |
| |
| * UserInterface/Base/Setting.js: |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-08-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r248682): Elements: Computed: go-to arrows in the Variables section are misaligned |
| https://bugs.webkit.org/show_bug.cgi?id=200841 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| The Variables section uses a different CSS class since it's identifier changed in r248682. |
| |
| * UserInterface/Views/ComputedStyleDetailsPanel.css: |
| (.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables)): Added. |
| (.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables) .property): Added. |
| (.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables) .property .go-to-arrow): Added. |
| (.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables) .property:not(:hover) .go-to-arrow): Added. |
| (.sidebar > .panel.details.css-style > .content > .computed .computed-style-properties): Deleted. |
| (.sidebar > .panel.details.css-style > .content > .computed .computed-style-properties .property .go-to-arrow): Deleted. |
| (.sidebar > .panel.details.css-style > .content > .computed .computed-style-properties .property:hover .go-to-arrow): Deleted. |
| |
| 2019-08-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: have more aggressive checks for dataURLs provided to `console.screenshot` |
| https://bugs.webkit.org/show_bug.cgi?id=200747 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Always send any /data:*+/ strings to the frontend and have it render there. If that doesn't |
| work, have the frontend "spoof" an error message look and feel. |
| |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WI.ConsoleMessageView.prototype._appendMessageTextAndArguments): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-08-19 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: RTL: Network headers values should be preserved |
| https://bugs.webkit.org/show_bug.cgi?id=200873 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Replace spans with bdi elements, which have `unicode-bidi: isolate` User Agent style. |
| This works well with both LTR and RTL values. |
| |
| * UserInterface/Views/ResourceDetailsSection.js: |
| (WI.ResourceDetailsSection.prototype.appendKeyValuePair): |
| Drive-by: remove unnecessary if/else statement and use `append` instead. |
| |
| 2019-08-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: Debugger: pressing delete when the all/uncaught exceptions breakpoint is selected should select the next tree element |
| https://bugs.webkit.org/show_bug.cgi?id=200876 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Removing the `return true;` from the various `WI.TreeElement` breakpoint classes allows the |
| owner `WI.TreeOutline` to also handle the delete event. In the Debugger/Sources navigation |
| sidebar, the owner `WI.TreeOutline` checks to see if the currently selected `WI.TreeElement` |
| is one of the "top" items ("All Exceptions", "Uncaught Exceptions", "Assertion Failures") |
| and if so, select the next tree element (if able) instead of the previous one. |
| |
| This is a preferred experience because the "top" items can only be disabled, not deleted, so |
| trying to delete them wouldn't actually change the selection. They should only ever be |
| selected if there's nothing else that can be selected. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement): |
| (WI.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement.checkIfSelectionAdjustmentNeeded): Added. |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.checkIfSelectionAdjustmentNeeded): Added. |
| |
| * UserInterface/Views/BreakpointTreeElement.js: |
| (WI.BreakpointTreeElement.prototype.ondelete): |
| * UserInterface/Views/DOMBreakpointTreeElement.js: |
| (WI.DOMBreakpointTreeElement.prototype.ondelete): |
| * UserInterface/Views/DOMNodeTreeElement.js: |
| (WI.DOMNodeTreeElement.prototype.ondelete): |
| * UserInterface/Views/EventBreakpointTreeElement.js: |
| (WI.EventBreakpointTreeElement.prototype.ondelete): |
| * UserInterface/Views/URLBreakpointTreeElement.js: |
| (WI.URLBreakpointTreeElement.prototype.ondelete): |
| |
| 2019-08-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: don't show the All Requests breakpoint by default |
| https://bugs.webkit.org/show_bug.cgi?id=200892 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/Setting.js: |
| |
| 2019-08-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: gear icons moves to 2nd line when sidebar is narrow |
| https://bugs.webkit.org/show_bug.cgi?id=198017 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/NavigationBar.js: |
| (WI.NavigationBar): |
| (WI.NavigationBar.prototype.layout): |
| (WI.NavigationBar.prototype.layout.forceItemHidden): Added. |
| (WI.NavigationBar.prototype.layout.isDivider): Added. |
| (WI.NavigationBar.prototype.layout.calculateVisibleItemWidth): Added. |
| (WI.NavigationBar.prototype.needsLayout): Deleted. |
| (WI.NavigationBar.prototype.sizeDidChange): Deleted. |
| (WI.NavigationBar.prototype._updateContent): Deleted. |
| (WI.NavigationBar.prototype._updateContent.forceItemHidden): Deleted. |
| (WI.NavigationBar.prototype._updateContent.isDivider): Deleted. |
| (WI.NavigationBar.prototype._updateContent.calculateVisibleItemWidth): Deleted. |
| Reset the cached `_minimumWidth` whenever updating in `layout()`. |
| |
| * UserInterface/Views/NavigationItem.js: |
| (WI.NavigationItem.prototype.get width): |
| (WI.NavigationItem.prototype.update): Added. |
| (WI.NavigationItem.prototype.updateLayout): Deleted. |
| (WI.NavigationItem.prototype.get totalMargin): Added. |
| * UserInterface/Views/ButtonNavigationItem.js: |
| (WI.ButtonNavigationItem.prototype.get totalMargin): Added. |
| * UserInterface/Views/ButtonNavigationItem.css: |
| * UserInterface/Views/TextNavigationItem.js: |
| (WI.TextNavigationItem.prototype.get totalMargin): Added. |
| * UserInterface/Views/TextNavigationItem.css: |
| `Element.prototype.getBoundingClientRect` doesn't include the `margin` box of an element. |
| Rather than create a CSS variable and parse a computed style, save the total `margin` amount |
| to a getter that can then be added when computing the minimum width. |
| |
| * UserInterface/Views/Sidebar.js: |
| (WI.Sidebar): |
| (WI.Sidebar.prototype._recalculateWidth): |
| * UserInterface/Views/FlexibleSpaceNavigationItem.js: |
| (WI.FlexibleSpaceNavigationItem.prototype.update): Added. |
| (WI.FlexibleSpaceNavigationItem.prototype.updateLayout): Deleted. |
| * UserInterface/Views/GroupNavigationItem.js: |
| (WI.GroupNavigationItem.prototype.update): Added. |
| (WI.GroupNavigationItem.prototype.updateLayout): Deleted. |
| * UserInterface/Views/HierarchicalPathNavigationItem.js: |
| (WI.HierarchicalPathNavigationItem.prototype.update): Added. |
| (WI.HierarchicalPathNavigationItem.prototype.updateLayout): Deleted. |
| * UserInterface/Views/RadioButtonNavigationItem.js: |
| (WI.RadioButtonNavigationItem.prototype.update): Added. |
| (WI.RadioButtonNavigationItem.prototype.updateLayout): Deleted. |
| Rename `updateLayout` to `update` so it doesn't clash with `WI.View` naming. |
| |
| * UserInterface/Views/SidebarNavigationBar.js: Removed. |
| * UserInterface/Main.html: |
| * UserInterface/Views/NavigationBar.css: |
| (.navigation-bar .item): Added. |
| (.navigation-bar .item, .sidebar-navigation-bar > .holder .item): Deleted. |
| (.sidebar-navigation-bar): Deleted. |
| (.sidebar-navigation-bar .holder): Deleted. |
| Remove unnecessary class. |
| |
| 2019-08-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Syntax Highlight more CSS media queries |
| https://bugs.webkit.org/show_bug.cgi?id=200824 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/CodeMirrorAdditions.js: |
| Special case CSS "error" tokenized values from CodeMirror inside @ rules |
| to treat some as properties. |
| |
| 2019-08-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: JavaScript formatting of single statement arrow function can be poor |
| https://bugs.webkit.org/show_bug.cgi?id=200800 |
| |
| Reviewed by Ross Kirsling. |
| |
| * UserInterface/Workers/Formatter/EsprimaFormatter.js: |
| (EsprimaFormatter.prototype._isLikelyToHaveNewline): |
| (EsprimaFormatter.prototype._handleTokenAtNode): |
| Better heuristic for single statement arrow functions. |
| |
| 2019-08-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: there should be an opposite icon for Eye.svg when we want to hide things instead of showing them |
| https://bugs.webkit.org/show_bug.cgi?id=200736 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| We currently use Eye.svg for disabling, or turning "off", Shader Programs, but it's not very |
| clear that clicking on the eye (which looks like "show me this", not "hide this") will do |
| that. Furthermore, a greyed out version also isn't clear that the Shader Program is disabled, |
| instead making the user think that the disable toggle is somehow "not working". |
| |
| The new hide icon is clearer, as it uses a strikethrough, rather than some shading/greying. |
| |
| * UserInterface/Views/ShaderProgramTreeElement.css: |
| (.item.shader-program .status > img): |
| (.item.shader-program.disabled:matches:hover .status > img): Added. |
| (.item.shader-program.disabled > :not(.status)): Added. |
| (.item.shader-program.disabled > *): Deleted. |
| * UserInterface/Images/Hide.svg: Added. |
| |
| * UserInterface/Views/ObjectTreePropertyTreeElement.css: |
| (.object-tree-property .getter): |
| * UserInterface/Images/Show.svg: Renamed from UserInterface/Images/Eye.svg. |
| |
| 2019-08-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: rename "Invalid Characters" to "Invisible Characters" for clarity |
| https://bugs.webkit.org/show_bug.cgi?id=200808 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createGeneralSettingsView): |
| |
| * UserInterface/Base/Main.js: |
| (setInvisibleCharacterClassName): Added. |
| (setInvalidCharacterClassName): Deleted. |
| * UserInterface/Views/CodeMirrorOverrides.css: |
| (.show-invisible-characters .CodeMirror .cm-invalidchar): Added. |
| (.show-invalid-characters .CodeMirror .cm-invalidchar): Deleted. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-08-16 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: RTL: Console should be always LTR |
| https://bugs.webkit.org/show_bug.cgi?id=200482 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ConsoleCommandView.js: |
| (WI.ConsoleCommandView.prototype.render): |
| * UserInterface/Views/ConsoleMessageView.css: |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WI.ConsoleMessageView.prototype.render): |
| Make console messages always LTR. |
| |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView.prototype._keyDown): |
| Since the console is always LTR now, we can remove code that flips left and right |
| arrow keys. |
| |
| * UserInterface/Views/ObjectTreeView.css: |
| JS objects should always be LTR. |
| |
| * UserInterface/Views/TreeElement.js: |
| Look at "direction" CSS property because Element's text direction can be LTR even |
| when `WI.resolvedLayoutDirection()` is RTL. |
| |
| (WI.TreeElement.prototype.isEventWithinDisclosureTriangle): |
| * UserInterface/Views/TreeOutline.css: |
| (body[dir=ltr] .tree-outline .item :matches(.disclosure-button, .icon),): |
| (body[dir=rtl] [dir=ltr] .tree-outline .item .disclosure-button): |
| |
| 2019-08-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: setting a breakpoint on a specific listener should enable the event listener |
| https://bugs.webkit.org/show_bug.cgi?id=200551 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/EventListenerSectionGroup.js: |
| (WI.EventListenerSectionGroup): |
| |
| 2019-08-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Update Esprima to support modern JavaScript language features |
| https://bugs.webkit.org/show_bug.cgi?id=200796 |
| |
| Reviewed by Ross Kirsling. |
| |
| Use a fork of Esprima to support modern JavaScript language features |
| while going through the process to upstream support: |
| |
| ES2018 Feature: Async Iteration (for-await-of) |
| https://github.com/jquery/esprima/issues/1990 |
| |
| ES2019 Feature: Numeric Separator |
| https://github.com/jquery/esprima/issues/1989 |
| |
| ES2019 Feature: Optional catch binding |
| https://github.com/jquery/esprima/issues/1953 |
| |
| ES2020 Feature: BigInt |
| https://github.com/jquery/esprima/issues/1988 |
| |
| ESTree compatible AST changes are summarized as: |
| |
| - CatchClause `param` property is now nullable |
| - ForOfStatement now has a boolean `await` property |
| - Literal can be a `"bigint"` type (works if the environment has BigInt or not) |
| |
| The pretty printer only needed to have additional handling for `for-await-of`. |
| |
| * UserInterface/External/Esprima/esprima.js: |
| New version. Typescript output expects a modern JavaScript environment |
| instead of just ES6. |
| |
| * Tools/Formatting/index.html: |
| Update the formatting tool for easier use in case of errors. |
| |
| * UserInterface/Models/ScriptSyntaxTree.js: |
| (WI.ScriptSyntaxTree.prototype._createInternalSyntaxTree): |
| |
| * UserInterface/Test/TestHarness.js: |
| (TestHarness.prototype.passOrFail): |
| Convenience for pass/fail with the same message based on a condition. |
| |
| * UserInterface/Workers/Formatter/EsprimaFormatter.js: |
| (EsprimaFormatter.prototype._handleTokenAtNode): |
| Ensure a space after `await` in `for await` syntax. |
| |
| 2019-08-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r244268): "Show Scope Chain on pause" setting has no effect |
| https://bugs.webkit.org/show_bug.cgi?id=200797 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/DebuggerTabContentView.js: |
| (WI.DebuggerTabContentView.prototype.showDetailsSidebarPanels): |
| * UserInterface/Views/SourcesTabContentView.js: |
| (WI.SourcesTabContentView.prototype.showDetailsSidebarPanels): |
| When the sidebar panel isn't visible `parentSidebar` is `null`. Use `WI.DetailsSidebar` instead. |
| |
| 2019-08-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'this._resource.initiatorSourceCodeLocation') |
| https://bugs.webkit.org/show_bug.cgi?id=200798 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ResourceDetailsSidebarPanel.js: |
| (WI.ResourceDetailsSidebarPanel.prototype.set resource): |
| (WI.ResourceDetailsSidebarPanel.prototype.layout): |
| Cancel the `Throttler` whenever the `_resource` is updated, as otherwise the `Throttler` may |
| fire later on with an unset `_resource`. |
| |
| 2019-08-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: provide a way to create an arbitrary Inspector Style Sheet |
| https://bugs.webkit.org/show_bug.cgi?id=200425 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Right now, the only way to create an Inspector Style Sheet is by creating a new rule in the |
| Styles sidebar of the Elements Tab. This is unnecessarily restrictive, especially for those |
| who don't use the Elements tab. |
| |
| Add a + button after the filter bar in the Navigation sidebar. Clicking on the + button will |
| show a menu with the following (more likely to be added later): |
| - Inspector Style Sheet |
| - Frames (if there are subframes) |
| - (name of subframe) |
| - Inspector Style Sheet |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._filterByResourcesWithIssues): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._compareTreeElements): |
| (WI.SourcesNavigationSidebarPanel.prototype._updateMainFrameTreeElement): |
| (WI.SourcesNavigationSidebarPanel.prototype._addResource): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange): |
| (WI.SourcesNavigationSidebarPanel.prototype._populateCreateResourceContextMenu): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeChanged): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleFrameWasAdded): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleMainFrameDidChange): Deleted. |
| * UserInterface/Views/GeneralTreeElement.js: |
| (WI.GeneralTreeElement.prototype.createFoldersAsNeededForSubpath): |
| Drive-by: sort `WI.ResourceTreeElement`s alongside `WI.FolderTreeElement`s for easier readability. |
| |
| * UserInterface/Views/FrameTreeElement.js: |
| (WI.FrameTreeElement.prototype.onpopulate): |
| Add all `inspectorStyleSheetsForFrame` instead of just the preferred one so that they all |
| are visible/selectable for editing. |
| |
| * UserInterface/Views/FilterBar.js: |
| (WI.FilterBar): |
| * UserInterface/Views/FilterBar.css: |
| (.filter-bar > .navigation-bar > .item): |
| (.filter-bar > input[type="search"]): |
| (.filter-bar > .navigation-bar + input[type="search"]): Added. |
| (.filter-bar > input[type="search"] + .navigation-bar:empty): Added. |
| Move the position of the filter bar buttons to be after the filter bar itself, so that other |
| parents can add action items before the filter bar to keep a consistent positioning. |
| - to the left of the filter bar are action items (e.g. "+") |
| - the filter bar itself |
| - to the right of the filter bar are filter buttons (e.g. "filter by resoure with issue") |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype.get frames): |
| Drive-by: use `Array.from`, instead of `[...map.values()]`. |
| |
| * UserInterface/Models/Frame.js: |
| (WI.Frame.prototype.get url): |
| (WI.Frame.prototype.get urlComponents): Added. |
| |
| * UserInterface/Base/URLUtilities.js.js: |
| (parseURL): |
| Calculate and include the `origin` string with the output. |
| |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager.prototype.preferredInspectorStyleSheetForFrame): |
| Remove `doNotCreateIfMissing` now that the last caller has been removed. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-08-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: CodeMirror still inserts a tab even when "Prefer indent using" is set to "Spaces" |
| https://bugs.webkit.org/show_bug.cgi?id=200770 |
| |
| Reviewed by Ross Kirsling. |
| |
| * UserInterface/Views/CodeMirrorAdditions.js: |
| Remap the `insertTab` command to use `insertSoftTab` when "Prefer indent using" is set to |
| "Spaces" so that CodeMirror inserts the number of spaces that would match a tab ("\t") being |
| inserted at the same spot. |
| |
| 2019-08-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: the "No Filter Results" message sits on top of all of the content, preventing any interaction |
| https://bugs.webkit.org/show_bug.cgi?id=200755 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.sources > .content > .resources-container): Added. |
| (@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > :matches(.call-stack-container, .breakpoints-container, .resources-container)): Added. |
| (@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > .call-stack-container): |
| (@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > .breakpoints-container): |
| (@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > .resources-container): Added. |
| (@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > :matches(.call-stack-container, .breakpoints-container, .resources)): Deleted. |
| (@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > .resources): Deleted. |
| Wrap the resources `WI.TreeOutline` in a <div> so the empty message placeholder that gets |
| inserted after it can be constrained to the size of the `WI.TreeOutline`. |
| |
| 2019-08-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Layers: background of 3D area doesn't update when transitioning to/from Dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=200775 |
| |
| Reviewed by Ross Kirsling. |
| |
| * UserInterface/Views/Layers3DContentView.js: |
| (WI.Layers3DContentView.prototype.initialLayout): |
| Add a `matchMedia` listener for `(prefers-color-scheme: dark)` and update the clear color |
| of the WebGL renderer whenever it changes. |
| |
| * UserInterface/Views/ErrorObjectView.css: |
| (@media (prefers-color-scheme: dark)): Added. |
| (@media (prefers-dark-interface)): Deleted. |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (@media (prefers-color-scheme: dark)): Added. |
| (@media (prefers-dark-interface)): Deleted. |
| Drive-by: replace older `prefers-dark-interface` with modern `prefers-color-scheme: dark`. |
| |
| 2019-08-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Update Esprima to trunk (minor fixes) |
| https://bugs.webkit.org/show_bug.cgi?id=200691 |
| <rdar://problem/54276170> |
| |
| Rubber-stamped by Devin Rousso. |
| |
| * UserInterface/External/Esprima/esprima.js: |
| Updated to jquery/esprima@5e55171feb5adbc2b1d28ef4b2628d5ea9af0848. |
| |
| * UserInterface/Models/ScriptSyntaxTree.js: |
| (WI.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers): |
| (WI.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration): |
| (WI.ScriptSyntaxTree.prototype._recurse): |
| (WI.ScriptSyntaxTree.prototype._createInternalSyntaxTree): |
| (WI.ScriptSyntaxTree): |
| * UserInterface/Workers/Formatter/ESTreeWalker.js: |
| (ESTreeWalker.prototype._walkChildren): |
| (ESTreeWalker): |
| * UserInterface/Workers/Formatter/EsprimaFormatter.js: |
| (EsprimaFormatter.prototype._handleTokenAtNode): |
| - SpreadProperty => SpreadElement. |
| - RestProperty => RestElement. |
| |
| 2019-08-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: Content request failed. |
| https://bugs.webkit.org/show_bug.cgi?id=200704 |
| <rdar://problem/54279372> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Models/WebSocketResource.js: |
| (WI.WebSocketResource.prototype.requestContentFromBackend): Added. |
| Add an "assert not reached", as WebSocket resources don't really have "content", instead |
| having a list of send/receive frames. |
| |
| * UserInterface/Views/ResourceClusterContentView.js: |
| (WI.ResourceClusterContentView.prototype._tryEnableCustomResponseContentView): |
| Don't attempt to request the content of any `WI.WebSocketResource` for the reason above. |
| |
| 2019-08-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: Computed: move the Box Model section to the top |
| https://bugs.webkit.org/show_bug.cgi?id=200555 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| For nodes that use a lot of different CSS properties, having the Box Model section all the |
| way at the bottom isn't as useful for taking a quick glance at the node's box model data. |
| |
| * UserInterface/Views/ComputedStyleDetailsPanel.js: |
| (WI.ComputedStyleDetailsPanel.prototype.initialLayout): |
| |
| 2019-08-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: Computed: the collapsed state of the Variables section should be separate from the collapsed state of the Properties section |
| https://bugs.webkit.org/show_bug.cgi?id=200725 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ComputedStyleDetailsPanel.js: |
| (WI.ComputedStyleDetailsPanel.prototype.initialLayout): |
| Use a different identifier string for the Variable section so it preserves its own collapsed |
| collapsed state independent of the Properties section. |
| |
| 2019-08-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: Computed: the background of the Properties/Variables sections should match the Box Model section when expanded |
| https://bugs.webkit.org/show_bug.cgi?id=200724 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ComputedStyleDetailsPanel.css: |
| (.sidebar > .panel.details.css-style > .content > .computed > .details-section:not(.collapsed) > :matches(.header, .content)): Added. |
| (.sidebar > .panel.details.css-style > .content > .computed .computed-style-properties): Added. |
| (.sidebar > .panel.details.css-style > .content > .computed .computed-style-properties .property .go-to-arrow): Added. |
| (.sidebar > .panel.details.css-style > .content > .computed .computed-style-properties .property:hover .go-to-arrow): Added. |
| (.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables) > .content): Added. |
| (.details-section:matches(.computed-style-properties, .computed-style-box-model):not(.collapsed) > :matches(.header, .content)): Deleted. |
| (.computed-style-properties): Deleted. |
| (.computed-style-properties .property .go-to-arrow): Deleted. |
| (.computed-style-properties .property:hover .go-to-arrow): Deleted. |
| (.details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)): Deleted. |
| (.details-section.computed-style-properties > .content): Deleted. |
| (@media (prefers-color-scheme: dark)): Deleted. |
| Use more specific selectors to match overall Web Inspector style. |
| |
| * UserInterface/Views/ComputedStyleSection.css: |
| (.computed-style-section .computed-property-item.expanded): |
| Darken the background of any expanded computed property in light mode. |
| |
| 2019-08-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Uncaught Exception: content.isJSON is not a function selecting image resource |
| https://bugs.webkit.org/show_bug.cgi?id=200680 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ResourceClusterContentView.js: |
| (WI.ResourceClusterContentView.prototype._canUseJSONContentViewForContent): |
| Protect against non-string data, such as Blob response content. |
| |
| 2019-08-13 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Styles: show @supports CSS groupings |
| https://bugs.webkit.org/show_bug.cgi?id=200419 |
| <rdar://problem/53971948> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/CSSGrouping.js: Renamed from Source/WebInspectorUI/UserInterface/Models/CSSMedia.js. |
| (WI.CSSGrouping): |
| (WI.CSSGrouping.prototype.get type): |
| (WI.CSSGrouping.prototype.get text): |
| (WI.CSSGrouping.prototype.get sourceCodeLocation): |
| (WI.CSSGrouping.prototype.get isMedia): Added. |
| (WI.CSSGrouping.prototype.get isSupports): Added. |
| (WI.CSSGrouping.prototype.get prefix): Added. |
| |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration.prototype.get groupings): Added. |
| (WI.CSSStyleDeclaration.prototype.generateCSSRuleString): |
| (WI.CSSStyleDeclaration.prototype.get mediaList): Deleted. |
| |
| * UserInterface/Models/CSSRule.js: |
| (WI.CSSRule): |
| (WI.CSSRule.prototype.get groupings): Added. |
| (WI.CSSRule.prototype.update): |
| (WI.CSSRule.prototype._selectorResolved): |
| (WI.CSSRule.prototype.get mediaList): Deleted. |
| |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype._parseRulePayload): |
| (WI.DOMNodeStyles.prototype.rulesForSelector): Deleted. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleEditorFilterApplied): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._createMediaHeader): Deleted. |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css: |
| (.spreadsheet-css-declaration :matches(.header, .header-groupings)): Added. |
| (.spreadsheet-css-declaration :matches(.header, .header-groupings):first-child): Added. |
| (.spreadsheet-css-declaration .header-groupings > .grouping): Added. |
| (.spreadsheet-css-declaration :matches(.header, .header-media)): Deleted. |
| (.spreadsheet-css-declaration :matches(.header, .header-media):first-child): Deleted. |
| (.spreadsheet-css-declaration .media-label): Deleted. |
| |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager.protocolGroupingTypeToEnum): Added. |
| (WI.CSSManager.protocolMediaSourceToEnum): Deleted. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| |
| 2019-08-12 Devin Rousso <drousso@apple.com> |
| |
| REGRESSION(r248391): Web Inspector: changing Layout Direction Debug setting no longer adds dir="ltr" to body element |
| https://bugs.webkit.org/show_bug.cgi?id=200564 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| `WI.resolvedLayoutDirection` was called before `WI.runBootstrapOperations`, which is what |
| instantiates `WI.showDebugUISetting`. Without it, `WI.resolvedLayoutDirection` will ignore |
| the value of `WI.settings.debugLayoutDirection` and instead use the system. |
| |
| Moving the instantiation of `WI.showDebugUISetting` outside `WI.runBootstrapOperations` |
| allows the setting to be created when the Bootstrap.js script is loaded, rather than after |
| the `DOMContentLoaded` event is fired. This means that it's guaranteed to exist before any |
| interface/view code runs. |
| |
| * UserInterface/Debug/Bootstrap.js: |
| (WI.runBootstrapOperations): |
| |
| 2019-08-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: remove WI.DeprecatedRemoteObjectProperty |
| https://bugs.webkit.org/show_bug.cgi?id=200549 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Protocol/RemoteObject.js: |
| (WI.RemoteObject.prototype.deprecatedGetOwnProperties): Deleted. |
| (WI.RemoteObject.prototype.deprecatedGetAllProperties): Deleted. |
| (WI.RemoteObject.prototype.deprecatedGetDisplayableProperties): Deleted. |
| (WI.RemoteObject.prototype._deprecatedGetProperties): Deleted. |
| (WI.RemoteObject.prototype._deprecatedGetPropertiesResolver): Deleted. |
| (WI.DeprecatedRemoteObjectProperty): Deleted. |
| (WI.DeprecatedRemoteObjectProperty.prototype.fromPrimitiveValue): Deleted. |
| |
| * UserInterface/Models/CallFrame.js: |
| (WI.CallFrame.prototype.collectScopeChainVariableNames): |
| |
| * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: |
| (WI.DOMNodeDetailsSidebarPanel.prototype._refreshProperties): |
| |
| 2019-08-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r248201): DOMDebugger: unable to add event breakpoint when All Events breakpoint is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=200561 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager.prototype.addEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype.removeEventBreakpoint): |
| |
| 2019-08-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: DOMDebugger: breakpoints are forcibly enabled when resolving DOM breakpoints for newly added nodes |
| https://bugs.webkit.org/show_bug.cgi?id=200639 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Since DOM breakpoints revolve around a given DOM node, we attempt to restore DOM breakpoints |
| whenever new nodes are added by matching them to the path of the DOM breakpoint. When doing |
| so, we should be in a "temporarily restoring breakpoints" mode so that we don't forcibly |
| enable all breakpoints. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager.prototype._speculativelyResolveDOMBreakpointsForURL): |
| (WI.DOMDebuggerManager.prototype._nodeInserted): |
| |
| 2019-08-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: Styles: add space between media query and style icon |
| https://bugs.webkit.org/show_bug.cgi?id=200623 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css: |
| (.spreadsheet-css-declaration .header:not(:first-child), .spreadsheet-css-declaration .header:not(.editing-selector) .selector, .spreadsheet-css-declaration.has-icon .header.editing-selector .selector): Added. |
| (.spreadsheet-css-declaration .header.editing-selector .selector): Deleted. |
| Ensure the selector field doesn't shift vertically when entering/exiting editing mode. |
| |
| 2019-08-09 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Address some ESLint warnings |
| https://bugs.webkit.org/show_bug.cgi?id=200598 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Utilities.js: |
| * UserInterface/Controllers/TimelineManager.js: |
| * UserInterface/Models/DOMNodeStyles.js: |
| * UserInterface/Models/LayoutTimelineRecord.js: |
| * UserInterface/Models/ServerTimingEntry.js: |
| * UserInterface/Models/TimelineRecording.js: |
| * UserInterface/Protocol/RemoteObject.js: |
| * UserInterface/Test/FrontendTestHarness.js: |
| * UserInterface/Test/Test.js: |
| * UserInterface/Views/CPUTimelineView.js: |
| * UserInterface/Views/CPUUsageCombinedView.js: |
| * UserInterface/Views/ChangesDetailsSidebarPanel.js: |
| * UserInterface/Views/DOMTreeContentView.js: |
| * UserInterface/Views/DOMTreeElement.js: |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| * UserInterface/Views/NetworkTableContentView.js: |
| * UserInterface/Views/ResourceTimingBreakdownView.js: |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| * UserInterface/Views/TreeOutline.js: |
| |
| 2019-08-09 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Better organize manager / observer API groups |
| https://bugs.webkit.org/show_bug.cgi?id=200594 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager.prototype.globalObjectCleared): |
| (WI.DebuggerManager.prototype.reset): Deleted. |
| Renamed. |
| |
| * UserInterface/Protocol/DebuggerObserver.js: |
| (WI.DebuggerObserver.prototype.globalObjectCleared): |
| |
| * UserInterface/Controllers/CSSManager.js: |
| * UserInterface/Controllers/CanvasManager.js: |
| * UserInterface/Controllers/ConsoleManager.js: |
| * UserInterface/Controllers/DOMManager.js: |
| * UserInterface/Controllers/DOMStorageManager.js: |
| * UserInterface/Controllers/LayerTreeManager.js: |
| * UserInterface/Controllers/NetworkManager.js: |
| * UserInterface/Controllers/TargetManager.js: |
| * UserInterface/Controllers/TimelineManager.js: |
| * UserInterface/Controllers/WorkerManager.js: |
| |
| 2019-08-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r248454): WK1 inspector frontend client doesn't queue messages to the frontend before it's loaded |
| https://bugs.webkit.org/show_bug.cgi?id=200587 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| WK1 inspector sends messages to the frontend using `WebCore::InspectorClient::doDispatchMessageOnFrontendPage`, |
| which does not do any sort of queueing to wait until the frontend is loaded (`InspectorFrontendHost.loaded()`). |
| |
| Now that we are sending messages immediately, we should always queue. |
| |
| * UserInterface/Test/TestStub.js: |
| (InspectorFrontendAPI.dispatch): Added. |
| |
| * UserInterface/Models/Frame.js: |
| (WI.Frame.prototype.markDOMContentReadyEvent): |
| (WI.Frame.prototype.markLoadEvent): |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype.pageDOMContentLoadedEventFired): |
| (WI.TimelineManager.prototype.pageLoadEventFired): |
| |
| 2019-08-09 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Node details sidebar sections have unclear delineation in Dark Mode |
| https://bugs.webkit.org/show_bug.cgi?id=200603 |
| <rdar://problem/54146925> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/DetailsSection.css: |
| (@media (prefers-color-scheme: dark)): |
| (.details-section .details-section,): |
| Give a details section header a different color than a normal sidebar header. |
| |
| 2019-08-09 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r248480): Sources: the Pause Reason section takes the entire vertical space when there are few breakpoints/resources |
| https://bugs.webkit.org/show_bug.cgi?id=200597 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (@media (min-height: 650px) .sidebar > .panel.navigation.sources > .content > .pause-reason-container): Deleted. |
| Don't `flex-grow` or `flex-shrink` the Pause Reason section so it always displays its full |
| content. The rest of the sections can grow/shrink as needed. |
| |
| 2019-08-09 Devin Rousso <drousso@apple.com> |
| |
| REGRESSION (Safari 6): Web Inspector: JSON may not be pretty printed if served as text/html |
| https://bugs.webkit.org/show_bug.cgi?id=122898 |
| <rdar://problem/15241419> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Check the request/response data to see if it's JSON parsable. If so, allow the user to elect |
| to view the request/response as a JSON preview instead of raw (or pretty printed) text. |
| |
| Prefer the JSON view wherever possible. |
| |
| * UserInterface/Views/ResourceClusterContentView.js: |
| (WI.ResourceClusterContentView): |
| (WI.ResourceClusterContentView.prototype.get requestContentView): |
| (WI.ResourceClusterContentView.prototype.get customRequestContentView): Added. |
| (WI.ResourceClusterContentView.prototype.get customResponseContentView): |
| (WI.ResourceClusterContentView.prototype.get selectionPathComponents): |
| (WI.ResourceClusterContentView.prototype.showRequest): |
| (WI.ResourceClusterContentView.prototype._canShowCustomRequestContentView): Added. |
| (WI.ResourceClusterContentView.prototype._canShowCustomResponseContentView): |
| (WI.ResourceClusterContentView.prototype._contentViewForResourceType): |
| (WI.ResourceClusterContentView.prototype._pathComponentForContentView): |
| (WI.ResourceClusterContentView.prototype._identifierForContentView): |
| (WI.ResourceClusterContentView.prototype._showContentViewForIdentifier): |
| (WI.ResourceClusterContentView.prototype._canUseJSONContentViewForContent): Added. |
| (WI.ResourceClusterContentView.prototype._tryEnableCustomRequestContentView): Added. |
| (WI.ResourceClusterContentView.prototype._tryEnableCustomResponseContentView): |
| (WI.ResourceClusterContentView.prototype.saveToCookie): Deleted. |
| (WI.ResourceClusterContentView.prototype._customContentViewConstructorForResource): Deleted. |
| Since the current view is already saved in a `WI.Setting`, there's no need to save that |
| state to a cookie, as it'll be restored elsewhere. |
| |
| * UserInterface/Base/Main.js: |
| (WI.showResourceRequest): |
| |
| * UserInterface/Main.html: |
| * UserInterface/Views/JSONContentView.js: Added. |
| (WI.JSONContentView): |
| (WI.JSONContentView.prototype.initialLayout): |
| (WI.JSONContentView.prototype.attached): |
| (WI.JSONContentView.prototype.closed): |
| * UserInterface/Views/JSONContentView.css: Added. |
| (.content-view.json): |
| * Source/WebInspectorUI/UserInterface/Views/JSONResourceContentView.js: Deleted. |
| * Source/WebInspectorUI/UserInterface/Views/JSONResourceContentView.css: Deleted. |
| Create a more generic content view that shows a preview for the given JSON parsable string. |
| |
| * UserInterface/Base/Utilities.js: |
| (String.prototype.isJSON): Added. |
| * UserInterface/Views/WebSocketDataGridNode.js: |
| (WI.WebSocketDataGridNode.prototype.appendContextMenuItems): |
| Utility function for checking if a string is JSON parsable. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-08-09 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: increase the vertical space allocated to the call stack when paused |
| https://bugs.webkit.org/show_bug.cgi?id=200236 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Rather than uniformly constrict the height of the Call Stack and Breakpoints sections, they |
| should "flex" based on their importance, which can likely be derived from the current state. |
| This way, it's possible to see information from each section at the same time, but still |
| have enough space in each section to be able to do something useful. |
| |
| When paused, the most useful data is the call stack, so give the Call Stack section the most |
| vertical space (the Pause Reason is also important, but it usually needs very little space). |
| |
| When not paused, it's likely that the user cares more about the resources with breakpoints |
| than those without, so favor the Breakpoints section. |
| |
| Each section will only expand to fit it's maximum content height. |
| |
| If the inspector window becomes too short, remove the "flex" entirely and have all the |
| content be part of a single scroll area instead. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype.createContentTreeOutline): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerPaused): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerResumed): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleCallStackElementAddedOrRemoved): Deleted. |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.sources > .content > :matches(.pause-reason-container, .call-stack-container, .breakpoints-container)): Added. |
| (.sidebar > .panel.navigation.sources > .content .details-section): Added. |
| (.sidebar > .panel.navigation.sources > .content .details-section.collapsed > .header > .options, .sidebar > .panel.navigation.sources > .content .details-section:not(.collapsed) > .content, .sidebar > .panel.navigation.sources > .content .details-section:not(.collapsed) > .content > .group): Added. |
| (.sidebar > .panel.navigation.sources > .content > .breakpoints-container .create-breakpoint): Added. |
| (.sidebar > .panel.navigation.sources > .content > .navigation-bar): Added. |
| (@media (min-height: 650px)): Added. |
| (.sidebar > .panel.navigation.sources > .content > .pause-reason-container): Added. |
| (.sidebar > .panel.navigation.sources > .content > :matches(.call-stack-container, .breakpoints-container, .resources)): Added. |
| (.sidebar > .panel.navigation.sources > .content > .call-stack-container): Added. |
| (.sidebar > .panel.navigation.sources > .content > .breakpoints-container): Added. |
| (.sidebar > .panel.navigation.sources > .content > .resources): Added. |
| (.sidebar > .panel.navigation.sources > .content > .breakpoints-container .tree-outline .item.event-target-window .icon): Added. |
| (.sidebar > .panel.navigation.sources > .content > .details-section): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section:matches(.paused-reason, .breakpoints).collapsed > .header > .options,): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section.collapsed > .content): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints > .header > .options .create-breakpoint): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section:matches(.pause-reason, .call-stack, .breakpoints) > .content,): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section:matches(.call-stack, .breakpoints) > .content): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section:matches(.call-stack, .breakpoints):not(.collapsed) > .content): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section.call-stack): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints .create-breakpoint): Deleted. |
| (@media (min-height: 600px)): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .pause-reason): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section:matches(.call-stack, .breakpoints):not(.collapsed) > .content,): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints .tree-outline .item.event-target-window .icon): Deleted. |
| Wrap the Pause Reason, Call Stack, and Breakpoints `WI.DetailsSection`s in a container |
| element so that the styling of the sticky header doesn't get affected by the clamping of the |
| container's height. |
| |
| * UserInterface/Views/DetailsSection.css: |
| (.details-section): |
| (.details-section > .header): |
| Create CSS variables for styles that will be overridden by the Sources navigation sidebar. |
| |
| 2019-08-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Page: don't allow the domain to be disabled |
| https://bugs.webkit.org/show_bug.cgi?id=200109 |
| |
| Reviewed by Brian Burg. |
| |
| The `PageAgent` is relied on by many of the other agents, so much so that it doesn't make |
| sense to support the ability to "disable" (as well as "enable") the agent. |
| |
| When the first frontend connects, we should treat the `PageAgent` as active and available. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype.initializeTarget): |
| |
| * Test/Test.js: |
| (WI.loaded): |
| (WI.initializeBackendTarget): |
| (WI.contentLoaded): |
| (WI.targetsAvailable): Added. |
| (WI.whenTargetsAvailable): Added. |
| * Test/TestStub.js: |
| Ensure that the backend always gets notified via `InspectorFrontendHost.loaded` so that |
| messages being sent to the frontend are batched. |
| |
| 2019-08-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: rename `queryObjects` to `queryInstances` for clarity |
| https://bugs.webkit.org/show_bug.cgi?id=200520 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| |
| 2019-08-07 Devin Rousso <drousso@apple.com> |
| |
| Fix construction of `WI.EventBreakpoint` after r248201 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager.prototype.setBreakpointForEventListener): |
| |
| 2019-08-07 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Settings: add an Engineering pane to expose useful settings for other WebKit engineers |
| https://bugs.webkit.org/show_bug.cgi?id=200492 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Other WebKit engineers might find being able to see internal objects or pause in internal |
| scripts useful, so we should allow them to do so without having to enable Web Inspector's |
| debug "mode". |
| |
| A new "Engineering" pane is added to the Settings Tab: |
| - Debugging |
| - Show WebKit-internal scripts |
| - Pause in WebKit-internal scripts |
| - Heap Snapshot |
| - Show Internal Objects |
| - Show Private Symbols |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype.initialLayout): |
| (WI.SettingsTabContentView.prototype._createEngineeringSettingsView): Added. |
| (WI.SettingsTabContentView.prototype._createDebugSettingsView): |
| |
| * UserInterface/Base/Main.js: |
| (WI.resolvedLayoutDirection): |
| (WI.setLayoutDirection): |
| * UserInterface/Base/Object.js: |
| |
| * UserInterface/Protocol/InspectorBackend.js: |
| (InspectorBackendClass): |
| (InspectorBackendClass.prototype.set dumpInspectorProtocolMessages): |
| (InspectorBackendClass.prototype.get dumpInspectorProtocolMessages): |
| (InspectorBackendClass.prototype.set dumpInspectorTimeStats): |
| (InspectorBackendClass.prototype.get dumpInspectorTimeStats): |
| (InspectorBackendClass.prototype.set filterMultiplexingBackendInspectorProtocolMessages): |
| (InspectorBackendClass.prototype.get filterMultiplexingBackendInspectorProtocolMessages): |
| * UserInterface/Protocol/RemoteObject.js: |
| (WI.RemoteObject.prototype.findFunctionSourceCodeLocation): |
| * UserInterface/Debug/Bootstrap.js: |
| (WI.runBootstrapOperations): |
| * UserInterface/Debug/UncaughtExceptionReporter.js: |
| (handleUncaughtExceptionRecord): |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype._updateOwnerStyleText): |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration.prototype.update): |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager): |
| (WI.DebuggerManager.prototype.initializeTarget): |
| (WI.DebuggerManager.prototype.get knownNonResourceScripts): |
| (WI.DebuggerManager.prototype.debuggerDidPause): |
| (WI.DebuggerManager.prototype.scriptDidParse): |
| (WI.DebuggerManager.prototype._handleEngineeringShowInternalScriptsSettingChanged): Added. |
| (WI.DebuggerManager.prototype._handleEngineeringPauseForInternalScriptsSettingChanged): Added. |
| (WI.DebuggerManager.prototype._pauseForInternalScriptsDidChange): Deleted. |
| (WI.DebuggerManager.prototype._debugUIEnabledDidChange): Deleted. |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WI.ConsoleMessageView.prototype._appendLocationLink): |
| * UserInterface/Views/HeapSnapshotDataGridTree.js: |
| (WI.HeapSnapshotInstancesDataGridTree.prototype.populateTopLevel): |
| * UserInterface/Views/OpenResourceDialog.js: |
| (WI.OpenResourceDialog.prototype._addScriptsForTarget): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor): |
| * UserInterface/Views/StackTraceView.js: |
| (WI.StackTraceView): |
| * UserInterface/Views/View.js: |
| (WI.View.prototype._layoutSubtree): |
| |
| 2019-08-07 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: RTL: content of Variables section should always be LTR |
| https://bugs.webkit.org/show_bug.cgi?id=200481 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ComputedStyleDetailsPanel.js: |
| (WI.ComputedStyleDetailsPanel.prototype.initialLayout): |
| |
| 2019-08-07 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: TimelineAgent already enabled |
| https://bugs.webkit.org/show_bug.cgi?id=200513 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Update some incorrect compatibility comments from r248286. |
| |
| * UserInterface/Protocol/InspectorFrontendAPI.js: |
| * UserInterface/Controllers/TimelineManager.js: |
| |
| 2019-08-06 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Show radius values in box model metrics view |
| https://bugs.webkit.org/show_bug.cgi?id=160993 |
| <rdar://problem/27919035> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/BoxModelDetailsSectionRow.js: |
| (WI.BoxModelDetailsSectionRow.prototype._getPropertyValue): Added. |
| (WI.BoxModelDetailsSectionRow.prototype._getPropertyValueAsPx): |
| (WI.BoxModelDetailsSectionRow.prototype._getBox): |
| (WI.BoxModelDetailsSectionRow.prototype._getComponentPrefix): Added. |
| (WI.BoxModelDetailsSectionRow.prototype._getComponentSuffix): |
| (WI.BoxModelDetailsSectionRow.prototype._updateMetrics): |
| (WI.BoxModelDetailsSectionRow.prototype._updateMetrics.createBoxPartElement): |
| (WI.BoxModelDetailsSectionRow.prototype._updateMetrics.createContentAreaElement): |
| (WI.BoxModelDetailsSectionRow.prototype._applyUserInput): |
| (WI.BoxModelDetailsSectionRow.prototype._applyUserInput.inspectedPage_node_toggleInlineStyleProperty): |
| * UserInterface/Views/BoxModelDetailsSectionRow.css: |
| (.details-section .row.box-model .box): Added. |
| (.details-section .row.box-model .box > .label): Added. |
| (.details-section .row.box-model .box.position): Added. |
| (.details-section .row.box-model .box.margin): Added. |
| (.details-section .row.box-model:not(.hovered) .box.margin, .details-section .row.box-model .box.margin.active): Added. |
| (.details-section .row.box-model .box.border): Added. |
| (.details-section .row.box-model:not(.hovered) .box.border, .details-section .row.box-model .box.border.active): Added. |
| (.details-section .row.box-model .box.border > .label): Added. |
| (.details-section .row.box-model .box.border.has-top-left-radius, .details-section .row.box-model .box.border.has-top-left-radius .box): Added. |
| (.details-section .row.box-model .box.border.has-top-right-radius, .details-section .row.box-model .box.border.has-top-right-radius .box): Added. |
| (.details-section .row.box-model .box.border.has-bottom-right-radius, .details-section .row.box-model .box.border.has-bottom-right-radius .box): Added. |
| (.details-section .row.box-model .box.border.has-bottom-left-radius, .details-section .row.box-model .box.border.has-bottom-left-radius .box): Added. |
| (.details-section .row.box-model .box.padding): Added. |
| (.details-section .row.box-model:not(.hovered) .box.padding, .details-section .row.box-model .box.padding.active): Added. |
| (.details-section .row.box-model .box.content): Added. |
| (.details-section .row.box-model:not(.hovered) .box.content, .details-section .row.box-model .box.content.active): Added. |
| (.details-section .row.box-model :matches(.top, .right, .bottom, .left)): Added. |
| (.details-section .row.box-model :matches(.top, .right, .bottom, .left):not(.editing), .details-section .row.box-model :matches(.top-left, .top-right, .bottom-right, .bottom-left)): Added. |
| (.details-section .row.box-model :matches(.top-left, .top-right, .bottom-right, .bottom-left)): Added. |
| (.details-section .row.box-model :matches(.top-left, .top-right)): Added. |
| (.details-section .row.box-model :matches(.bottom-left, .bottom-right):not(.editing)): Added. |
| (.details-section .row.box-model :matches(.bottom-left, .bottom-right).editing): Added. |
| (.details-section .row.box-model :matches(.top-left, .bottom-left):not(.editing)): Added. |
| (.details-section .row.box-model :matches(.top-left, .bottom-left).editing): Added. |
| (.details-section .row.box-model :matches(.top-right, .bottom-right):not(.editing)): Added. |
| (.details-section .row.box-model :matches(.top-right, .bottom-right).editing): Added. |
| (@media (prefers-color-scheme: dark) .details-section .row.box-model .box): Added. |
| (@media (prefers-color-scheme: dark) .details-section .row.box-model:not(.hovered) .box:matches(.margin, .border, .padding, .content), .details-section .row.box-model .box.active:matches(.margin, .border, .padding, .content)): Added. |
| (@media (prefers-color-scheme: dark) .details-section .row.box-model .box.margin): Added. |
| (@media (prefers-color-scheme: dark) .details-section .row.box-model .box.border): Added. |
| (.details-section .row.box-model :matches(.position, .margin, .border, .padding, .content)): Deleted. |
| (.details-section .row.box-model .position): Deleted. |
| (.details-section .row.box-model .margin): Deleted. |
| (.details-section .row.box-model:not(.hovered) .margin, .details-section .row.box-model .margin.active): Deleted. |
| (.details-section .row.box-model .border): Deleted. |
| (.details-section .row.box-model:not(.hovered) .border, .details-section .row.box-model .border.active): Deleted. |
| (.details-section .row.box-model .padding): Deleted. |
| (.details-section .row.box-model:not(.hovered) .padding, .details-section .row.box-model .padding.active): Deleted. |
| (.details-section .row.box-model .content): Deleted. |
| (.details-section .row.box-model:not(.hovered) .content, .details-section .row.box-model .content.active): Deleted. |
| (.details-section .row.box-model :matches(.content span, .top, .right, .bottom, .left)): Deleted. |
| (.details-section .row.box-model :matches(.right, .left)): Deleted. |
| (.details-section .row.box-model:not(.hovered) :matches(.margin, .border, .padding, .content), .details-section .row.box-model .active:matches(.margin, .border, .padding, .content)): Deleted. |
| |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype.update): |
| Ensure that the `_value` is updated whenever the `_rawValue` is updated. |
| |
| 2019-08-06 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r248289. |
| https://bugs.webkit.org/show_bug.cgi?id=200488 |
| |
| Broke internal builds (Requested by drousso on #webkit). |
| |
| Reverted changeset: |
| |
| "Web Inspector: Styles: show @supports CSS groupings" |
| https://bugs.webkit.org/show_bug.cgi?id=200419 |
| https://trac.webkit.org/changeset/248289 |
| |
| 2019-08-06 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: RTL: go-to arrows and expand triangles in Computed panel should match their context |
| https://bugs.webkit.org/show_bug.cgi?id=200449 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ComputedStyleSection.css: |
| (body[dir=rtl] .computed-style-section .computed-property-item .disclosure-button): Deleted. |
| |
| * UserInterface/Views/Main.css: |
| (body[dir=rtl] [dir=ltr] .go-to-arrow): Added. |
| In the RTL mode, LTR "islands" should have their contents to be still LTR. |
| |
| 2019-08-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Styles: show @supports CSS groupings |
| https://bugs.webkit.org/show_bug.cgi?id=200419 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/CSSGrouping.js: Renamed from Source/WebInspectorUI/UserInterface/Models/CSSMedia.js. |
| (WI.CSSGrouping): |
| (WI.CSSGrouping.prototype.get type): |
| (WI.CSSGrouping.prototype.get text): |
| (WI.CSSGrouping.prototype.get sourceCodeLocation): |
| (WI.CSSGrouping.prototype.get isMedia): Added. |
| (WI.CSSGrouping.prototype.get isSupports): Added. |
| (WI.CSSGrouping.prototype.get prefix): Added. |
| |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration.prototype.get groupings): Added. |
| (WI.CSSStyleDeclaration.prototype.generateCSSRuleString): |
| (WI.CSSStyleDeclaration.prototype.get mediaList): Deleted. |
| |
| * UserInterface/Models/CSSRule.js: |
| (WI.CSSRule): |
| (WI.CSSRule.prototype.get groupings): Added. |
| (WI.CSSRule.prototype.update): |
| (WI.CSSRule.prototype._selectorResolved): |
| (WI.CSSRule.prototype.get mediaList): Deleted. |
| |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype._parseRulePayload): |
| (WI.DOMNodeStyles.prototype.rulesForSelector): Deleted. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleEditorFilterApplied): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._createMediaHeader): Deleted. |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css: |
| (.spreadsheet-css-declaration :matches(.header, .header-groupings)): Added. |
| (.spreadsheet-css-declaration :matches(.header, .header-groupings):first-child): Added. |
| (.spreadsheet-css-declaration .header-groupings > .grouping): Added. |
| (.spreadsheet-css-declaration .header-groupings + .header > .selector > .icon): Added. |
| (.spreadsheet-css-declaration :matches(.header, .header-media)): Deleted. |
| (.spreadsheet-css-declaration :matches(.header, .header-media):first-child): Deleted. |
| (.spreadsheet-css-declaration .media-label): Deleted. |
| |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager.protocolGroupingTypeToEnum): Added. |
| (WI.CSSManager.protocolMediaSourceToEnum): Deleted. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| |
| 2019-08-05 Devin Rousso <drousso@apple.com> |
| |
| Can't use $0, $1 etc when inspecting Google Docs pages because the content uses these for function names |
| https://bugs.webkit.org/show_bug.cgi?id=195834 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Allow the user to alias saved results by providing a different prefix (e.g. "$") from within |
| Web Inspector. When changing the alias, all existing saved results will update to be |
| reference-able from the new alias. |
| |
| * UserInterface/Controllers/RuntimeManager.js: |
| (WI.RuntimeManager): |
| (WI.RuntimeManager.preferredSavedResultPrefix): Added. |
| (WI.RuntimeManager.prototype.initializeTarget): |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| (WI.JavaScriptRuntimeCompletionProvider.completionControllerCompletionsNeeded.receivedPropertyNames): |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Base/Main.js: |
| (WI.contentLoaded): |
| (WI.contentLoaded.updateConsoleSavedResultPrefixCSSVariable): Added. |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WI.ConsoleMessageView.prototype.toClipboardString): |
| (WI.ConsoleMessageView.prototype.removeEventListeners): Added. |
| (WI.ConsoleMessageView.prototype._appendSavedResultIndex): |
| (WI.ConsoleMessageView.prototype._appendSavedResultIndex.updateSavedVariableText): Added. |
| (WI.ConsoleMessageView.prototype._rootPropertyPathForObject): |
| (WI.ConsoleMessageView.prototype._rootPropertyPathForObject.prefixSavedResultIndex): Added. |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView.prototype._sessionStarted): |
| (WI.LogContentView.prototype._logCleared): |
| * UserInterface/Views/DOMTreeOutline.css: |
| (.tree-outline.dom.show-last-selected li.last-selected > span::after): |
| * UserInterface/Views/QuickConsole.js: |
| (WI.QuickConsole): |
| (WI.QuickConsole.prototype.closed): |
| (WI.QuickConsole.prototype._updateAutomaticExecutionContextPathComponentTooltip): Added. |
| Listen for changes to the setting that holds the current saved result alias and update any |
| related UI accordingly. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createConsoleSettingsView): |
| * UserInterface/Views/SettingsTabContentView.css: |
| (.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="text"]): Added. |
| * UserInterface/Views/SettingsGroup.js: |
| (WI.SettingsGroup.prototype.addCustomEditor): Added. |
| Add an input to the Settings tab that controls the saved result prefix alias. Only allow |
| [a-zA-Z0-9_$] as values (but [0-9] cannot be used as the start). |
| |
| * UserInterface/Models/PropertyPath.js: |
| (WI.PropertyPath.prototype.set pathComponent): Added. |
| Miscellaneous getters/setters. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Test/TestHarness.js: |
| (TestHarness.prototype.newline): Added. |
| Convenience function for adding newlines to test results. |
| |
| 2019-08-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: disable related agents when the tab is closed |
| https://bugs.webkit.org/show_bug.cgi?id=200118 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Rework how `enable`/`disable` is used for timeline-related agents so that events are not sent |
| and data isn't kept alive when the Timelines tab isn't enabled. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager): |
| (WI.TimelineManager.prototype.get domains): Added. |
| (WI.TimelineManager.prototype.activateExtraDomain): Added. |
| (WI.TimelineManager.prototype.initializeTarget): |
| (WI.TimelineManager.prototype.reset): |
| (WI.TimelineManager.prototype.set autoCaptureOnPageLoad): |
| (WI.TimelineManager.prototype.enable): Added. |
| (WI.TimelineManager.prototype.disable): Added. |
| (WI.TimelineManager.prototype.startCapturing): |
| (WI.TimelineManager.prototype.stopCapturing): |
| (WI.TimelineManager.prototype.async processJSON): |
| (WI.TimelineManager.prototype.capturingStarted): |
| (WI.TimelineManager.prototype.capturingStopped): |
| (WI.TimelineManager.prototype.autoCaptureStarted): |
| (WI.TimelineManager.prototype.eventRecorded): |
| (WI.TimelineManager.prototype.pageDOMContentLoadedEventFired): |
| (WI.TimelineManager.prototype.pageLoadEventFired): |
| (WI.TimelineManager.prototype.cpuProfilerTrackingUpdated): |
| (WI.TimelineManager.prototype.memoryTrackingUpdated): |
| (WI.TimelineManager.prototype.heapTrackingStarted): |
| (WI.TimelineManager.prototype.heapTrackingCompleted): |
| (WI.TimelineManager.prototype.heapSnapshotAdded): |
| (WI.TimelineManager.prototype._loadNewRecording): |
| (WI.TimelineManager.prototype._legacyAttemptStartAutoCapturingForFrame): |
| (WI.TimelineManager.prototype._provisionalLoadStarted): |
| (WI.TimelineManager.prototype._mainResourceDidChange): |
| (WI.TimelineManager.prototype._resourceWasAdded): |
| (WI.TimelineManager.prototype._garbageCollected): |
| (WI.TimelineManager.prototype._memoryPressure): |
| (WI.TimelineManager.prototype.scriptProfilerTrackingUpdated): |
| (WI.TimelineManager.prototype.scriptProfilerTrackingCompleted): |
| (WI.TimelineManager.prototype._updateAutoCaptureInstruments): |
| (WI.TimelineManager.prototype._handleDOMNodeDidFireEvent): |
| (WI.TimelineManager.prototype._handleDOMNodePowerEfficientPlaybackStateChanged): |
| * UserInterface/Models/Instrument.js: |
| (WI.Instrument.startLegacyTimelineAgent): |
| (WI.Instrument.stopLegacyTimelineAgent): |
| |
| * UserInterface/Controllers/HeapManager.js: |
| (WI.HeapManager): Added. |
| (WI.HeapManager.prototype.get domains): Added. |
| (WI.HeapManager.prototype.activateExtraDomain): Added. |
| (WI.HeapManager.prototype.initializeTarget): |
| (WI.HeapManager.prototype.enable): Added. |
| (WI.HeapManager.prototype.disable): Added. |
| (WI.HeapManager.prototype.snapshot): Added. |
| (WI.HeapManager.prototype.getPreview): Added. |
| (WI.HeapManager.prototype.getRemoteObject): Added. |
| (WI.HeapManager.prototype.garbageCollected): |
| |
| * UserInterface/Controllers/MemoryManager.js: |
| (WI.MemoryManager): Added. |
| (WI.MemoryManager.prototype.get domains): Added. |
| (WI.MemoryManager.prototype.activateExtraDomain): Added. |
| (WI.MemoryManager.prototype.initializeTarget): |
| (WI.MemoryManager.prototype.enable): Added. |
| (WI.MemoryManager.prototype.disable): Added. |
| (WI.MemoryManager.prototype.memoryPressure): |
| |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView): |
| (WI.TimelineTabContentView.prototype.closed): |
| |
| * UserInterface/Models/HeapAllocationsInstrument.js: |
| (WI.HeapAllocationsInstrument): |
| (WI.HeapAllocationsInstrument.prototype._takeHeapSnapshot): |
| * UserInterface/Views/HeapAllocationsTimelineView.js: |
| (WI.HeapAllocationsTimelineView.prototype._takeHeapSnapshotClicked): |
| * UserInterface/Views/HeapSnapshotInstanceDataGridNode.js: |
| (WI.HeapSnapshotInstanceDataGridNode.logHeapSnapshotNode): |
| (WI.HeapSnapshotInstanceDataGridNode.prototype._populatePreview): |
| (WI.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.appendPathRow): |
| Go through the `HeapManager` for `HeapAgent` commands so it can better manage state. |
| |
| * UserInterface/Test/Test.js: |
| (WI.contentLoaded): |
| |
| 2019-08-05 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: brotli-compressed resources have "Compressed: No" in Resources details sidebar |
| https://bugs.webkit.org/show_bug.cgi?id=200452 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.prototype.get compressed): |
| Add "br" - Brotli content encoding. |
| |
| 2019-08-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Styles: variable swatch not shown for var() with a fallback |
| https://bugs.webkit.org/show_bug.cgi?id=200237 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch): |
| (WI.SpreadsheetStyleProperty.prototype._replaceSpecialTokens): Added. |
| (WI.SpreadsheetStyleProperty.prototype._addGradientTokens): |
| (WI.SpreadsheetStyleProperty.prototype._addColorTokens): |
| (WI.SpreadsheetStyleProperty.prototype._addTimingFunctionTokens): |
| (WI.SpreadsheetStyleProperty.prototype._addVariableTokens): |
| Check to see if there's a fallback value in the `var()` and tokenize it if there is. Mark |
| the property as invalid if the `var()` doesn't end up resolving to anything. |
| |
| * UserInterface/Views/InlineSwatch.js: |
| (WI.InlineSwatch): |
| (WI.InlineSwatch.prototype.get value): |
| (WI.InlineSwatch.prototype._updateSwatch): |
| (WI.InlineSwatch.prototype._handleContextMenuEvent): |
| (WI.InlineSwatch.prototype._getNextValidHEXFormat.hexMatchesCurrentColor): |
| (WI.InlineSwatch.prototype._getNextValidHEXFormat): |
| Allow the `value` to be a function. In that case, use the getter `this.value` instead of the |
| value `this._value` directly so that the function is invoked. |
| This is needed for variable swatches because the fallback value could change after the |
| swatch has been created (e.g. another swatch in a CSS property value that just modifies the |
| text, rather than re-renders the entire CSS property value). |
| |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration.prototype.resolveVariableValue): Added. |
| Follow the variable chain until an ultimate value is reached. |
| |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| (WI.CSSKeywordCompletions.isColorAwareProperty): |
| (WI.CSSKeywordCompletions.isTimingFunctionAwareProperty): Added. |
| Limit `cubic-bezier` and `spring` tokens to only be shown for timing function properties. |
| |
| 2019-08-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: rename "Stylesheet" to "Style Sheet" to match spec text |
| https://bugs.webkit.org/show_bug.cgi?id=200422 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager.prototype._resourceAdded): |
| (WI.CSSManager.prototype._resourceTypeDidChange): |
| (WI.CSSManager.prototype._clearStyleSheetsForResource): |
| (WI.CSSManager.prototype._updateResourceContent.fetchedStyleSheetContent): |
| * UserInterface/Models/CSSStyleSheet.js: |
| (WI.CSSStyleSheet.prototype.get displayName): |
| * UserInterface/Models/CollectionTypes.js: |
| (WI.CSSStyleSheetCollection.prototype.get displayName): |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.displayNameForType): |
| (WI.Resource.prototype.get syntheticMIMEType): |
| * UserInterface/Models/ResourceCollection.js: |
| (WI.ResourceCollection.prototype.objectIsRequiredType): |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.shortDisplayNameForResourceType): |
| * UserInterface/Views/ResourceClusterContentView.js: |
| (WI.ResourceClusterContentView.prototype._contentViewForResourceType): |
| * UserInterface/Views/ResourceSidebarPanel.js: |
| (WI.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._save): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._populateIconElementContextMenu): |
| * UserInterface/Views/StyleOriginView.js: |
| (WI.StyleOriginView.prototype.update): |
| * UserInterface/Views/TextResourceContentView.js: |
| (WI.TextResourceContentView.prototype._shouldBeEditable): |
| |
| * UserInterface/Views/CSSStyleSheetTreeElement.js: |
| (WI.CSSStyleSheetTreeElement): |
| * UserInterface/Views/ResourceIcons.css: |
| (:matches(.resource-icon.resource-type-style-sheet, .style-sheet-icon) .icon): Added. |
| (.source-map-resource.resource-icon.resource-type-style-sheet .icon): Added. |
| (.large :matches(.resource-icon.resource-type-style-sheet, .style-sheet-icon) .icon): Added. |
| (.large .source-map-resource.resource-icon.resource-type-style-sheet .icon): Added. |
| (:matches(.resource-icon.resource-type-stylesheet, .stylesheet-icon) .icon): Deleted. |
| (.source-map-resource.resource-icon.resource-type-stylesheet .icon): Deleted. |
| (.large :matches(.resource-icon.resource-type-stylesheet, .stylesheet-icon) .icon): Deleted. |
| (.large .source-map-resource.resource-icon.resource-type-stylesheet .icon): Deleted. |
| |
| 2019-08-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: Styles: move psuedo-selector rules before inherited rules |
| https://bugs.webkit.org/show_bug.cgi?id=199950 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Since pseudo-selector rules (usually) affect the selected element, or are related to its |
| content, it's more useful to have them near that element's rules instead of after all of |
| it's inherited rules. |
| |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout): |
| |
| 2019-08-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: Styles: add icons for various CSS rule types |
| https://bugs.webkit.org/show_bug.cgi?id=199946 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager.displayNameForPseudoId): |
| Add hardcoded pseudo-selector identifiers for older backends. |
| |
| * UserInterface/Models/CSSSelector.js: |
| (WI.CSSSelector.prototype.isPseudoSelector): Added. |
| (WI.CSSSelector.prototype.isPseudoElementSelector): Deleted. |
| There are more types of pseudo-selectors than just `:{before|after}`. |
| |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration.prototype.generateCSSRuleString): Added. |
| |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionAddNewRule): Added. |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout): |
| Provide a delegate method for adding a new rule, so the `WI.SpreadsheetRulesStyleDetailsPanel` |
| can know what selector to focus once the new rule gets added. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._renderSelector): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._populateIconElementContextMenu): Added. |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css: |
| (.spreadsheet-css-declaration .header.editing-selector .selector): Added. |
| (.spreadsheet-css-declaration .selector > .icon): Added. |
| (.spreadsheet-css-declaration .selector > .icon + *): Added. |
| (.spreadsheet-css-declaration .selector.style-attribute > span): Added. |
| When "mousedown" (or "contextmenu") on the icon, show a context menu with helpful actions: |
| - Copy Rule |
| - {Disable|Enable} Rule |
| - Duplicate Selector |
| - Add :{active|focus|hover|visited} Rule |
| - Create ::{before|after} Rule |
| - Reveal in {Resources Tab|Sources Tab|Stylesheet} |
| Drive-by: add an extra 0.5px of initial margin before the Style Attribute selector (which is |
| sans-serif) so it properly aligns with the other selectors (which are monospaced). |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor:empty): Added. |
| (.spreadsheet-style-declaration-editor.no-properties): Deleted. |
| Add some extra space when there's no inline style so it looks a bit less cramped. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Views/StyleRuleIcons.css: Added. |
| (.author-style-rule-icon .icon): |
| (.author-style-rule-icon.pseudo-selector .icon): |
| (.user-style-rule-icon .icon): |
| (.user-style-rule-icon.pseudo-selector .icon): |
| (.user-agent-style-rule-icon .icon): |
| (.user-agent-style-rule-icon.pseudo-selector .icon): |
| (.inspector-style-rule-icon .icon): |
| (.inspector-style-rule-icon.pseudo-selector .icon): |
| (.inherited-style-rule-icon .icon): |
| (.inherited-element-style-rule-icon .icon): |
| * UserInterface/Images/StyleRule.svg: Added. |
| * UserInterface/Images/StyleRuleInheritedElement.svg: Added. |
| * UserInterface/Images/StyleRulePseudo.svg: Added. |
| Add generic icon classes for style rule icons. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| Add experimental setting. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-08-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOM: add a special breakpoint for "All Events" |
| https://bugs.webkit.org/show_bug.cgi?id=200285 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Similar to the existing "All Requests" breakpoint, there should be a way to set a breakpoint |
| that would pause for any DOM event, regardless of the event's name. This is useful for |
| situations where the event name isn't known, or where one simply want's to pause on the next |
| entry to the event loop. |
| |
| Along these lines, make the "requestAnimationFrame", "setTimeout", and "setInterval" |
| event breakpoints into special breakpoints that can be added/removed via the create |
| breakpoint context menu. This simplifies the process for setting these breakpoints, and also |
| makes them more discoverable (most people wouldn't consider them to be "events"). |
| |
| * UserInterface/Models/EventBreakpoint.js: |
| (WI.EventBreakpoint): |
| (WI.EventBreakpoint.deserialize): |
| (WI.EventBreakpoint.prototype.saveIdentityToCookie): |
| (WI.EventBreakpoint.prototype.toJSON): |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager.prototype._pauseReasonFromPayload): |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager): |
| (WI.DOMDebuggerManager.prototype.initializeTarget): |
| (WI.DOMDebuggerManager.supportsDOMBreakpoints): Added. |
| (WI.DOMDebuggerManager.supportsEventBreakpoints): |
| (WI.DOMDebuggerManager.supportsEventListenerBreakpoints): Added. |
| (WI.DOMDebuggerManager.supportsURLBreakpoints): |
| (WI.DOMDebuggerManager.supportsXHRBreakpoints): Added. |
| (WI.DOMDebuggerManager.supportsAllListenersBreakpoint): Added. |
| (WI.DOMDebuggerManager.prototype.get allAnimationFramesBreakpoint): Added. |
| (WI.DOMDebuggerManager.prototype.get allIntervalsBreakpoint): Added. |
| (WI.DOMDebuggerManager.prototype.get allListenersBreakpoint): Added. |
| (WI.DOMDebuggerManager.prototype.get allTimeoutsBreakpoint): Added. |
| (WI.DOMDebuggerManager.prototype.get listenerBreakpoints): Added. |
| (WI.DOMDebuggerManager.prototype.isBreakpointSpecial): |
| (WI.DOMDebuggerManager.prototype.listenerBreakpointForEventName): Added. |
| (WI.DOMDebuggerManager.prototype.addEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype.removeEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype.addURLBreakpoint): |
| (WI.DOMDebuggerManager.prototype._resolveDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype._updateDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype._updateEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype._updateURLBreakpoint): |
| (WI.DOMDebuggerManager.prototype._handleDOMBreakpointDisabledStateChanged): |
| (WI.DOMDebuggerManager.prototype._handleEventBreakpointDisabledStateChanged): |
| (WI.DOMDebuggerManager.prototype._handleURLBreakpointDisabledStateChanged): |
| (WI.DOMDebuggerManager.prototype.get eventBreakpoints): Deleted. |
| (WI.DOMDebuggerManager.prototype.eventBreakpointForTypeAndEventName): Deleted. |
| Add additional target compatibility checks. |
| |
| * UserInterface/Views/EventBreakpointPopover.js: |
| (WI.EventBreakpointPopover.prototype.show): |
| (WI.EventBreakpointPopover.prototype.dismiss): |
| (WI.EventBreakpointPopover.prototype._handleTypeSelectChange): Deleted. |
| * UserInterface/Views/EventBreakpointPopover.css: |
| (.popover .event-breakpoint-content > input): Added. |
| (.popover .event-breakpoint-content > input::placeholder): Added. |
| (.popover .event-breakpoint-content > .event-type): Deleted. |
| (.popover .event-breakpoint-content > .event-type > input): Deleted. |
| (.popover .event-breakpoint-content > .event-type > input::placeholder): Deleted. |
| |
| * UserInterface/Views/EventBreakpointTreeElement.css: |
| (.breakpoint.event.breakpoint-for-interval:not(.breakpoint-paused-icon) .icon): Added. |
| (.breakpoint.event.breakpoint-for-timeout:not(.breakpoint-paused-icon) .icon): Added. |
| (.breakpoint.event.breakpoint-for-timer:not(.breakpoint-paused-icon) .icon): Deleted. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| (WI.DebuggerSidebarPanel.prototype.saveStateToCookie): |
| (WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie): |
| (WI.DebuggerSidebarPanel.prototype._addBreakpoint): |
| (WI.DebuggerSidebarPanel.prototype._addTreeElement): |
| (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection): |
| (WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): |
| (WI.DebuggerSidebarPanel.prototype._populateCreateBreakpointContextMenu.addToggleForSpecialEventBreakpoint): Added. |
| (WI.DebuggerSidebarPanel.prototype._populateCreateBreakpointContextMenu): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype._insertDebuggerTreeElement): |
| (WI.SourcesNavigationSidebarPanel.prototype._addBreakpoint): |
| (WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): |
| (WI.SourcesNavigationSidebarPanel.prototype._populateCreateBreakpointContextMenu.addToggleForSpecialEventBreakpoint): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._populateCreateBreakpointContextMenu): |
| Add create breakpoint context menu items (also sort the breakpoints in this order): |
| - "All Animation Frames" => [A] All Animation Frames |
| - "All Timeouts" => [T] All Timeouts |
| - "All Intervals" => [I] All Intervals |
| - "All Events" => [E] All Events |
| |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| (WI.JavaScriptRuntimeCompletionProvider.completionControllerCompletionsNeeded.receivedPropertyNames): |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Images/EventBreakpointInterval.svg: Added. |
| * UserInterface/Images/EventBreakpointTimeout.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/EventBreakpointTimer.svg. |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-08-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Heap Snapshot Views should be searchable |
| https://bugs.webkit.org/show_bug.cgi?id=157582 |
| <rdar://problem/26228629> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Without the ability to filter/search, it's far more difficult to find objects of interest. |
| Rather than spending time scrolling through the entire heap snapshot or sorting by "Name", |
| a simple filter/search (which also uses the global search settings) is almost instant. |
| |
| * UserInterface/Views/HeapAllocationsTimelineView.js: |
| (WI.HeapAllocationsTimelineView.prototype.updateFilter): Addded. |
| (WI.HeapAllocationsTimelineView.prototype.get showsFilterBar): Deleted. |
| * UserInterface/Views/HeapSnapshotClusterContentView.js: |
| (WI.HeapSnapshotClusterContentView.prototype.updateFilter): Added. |
| * UserInterface/Views/HeapSnapshotContentView.js: |
| (WI.HeapSnapshotContentView): |
| (WI.HeapSnapshotContentView.prototype.updateFilter): Added. |
| (WI.HeapSnapshotContentView.prototype.dataGridMatchNodeAgainstCustomFilters): Added. |
| (WI.HeapSnapshotContentView.prototype.dataGridMatchShouldPopulateWhenFilteringNode): Added. |
| * UserInterface/Views/DataGrid.js: |
| (WI.DataGrid.prototype._updateFilter.createIteratorForNodesToBeFiltered): |
| Don't attempt to populate each heap snapshot `WI.DataGridNode` when filtering, as that can |
| quickly exhaust memory due to the sheer size of a heap snapshot. |
| |
| * UserInterface/Base/Main.js: |
| (WI._find): |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView.prototype.get canHandleFindEvent): Added. |
| (WI.TimelineTabContentView.prototype.handleFindEvent): Added. |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView.prototype.get canFocusFilterBar): Added. |
| (WI.TimelineRecordingContentView.prototype.focusFilterBar): Added. |
| * UserInterface/Views/FilterBar.js: |
| (WI.FilterBar.prototype.focus): Added. |
| Allow the current tab to intercept the find shortcut and do something custom. In the case |
| of a `WI.TimelineTabContentView`, declare that it can handle the find event if the displayed |
| content view (`WI.TimelineRecordingContentView`) can focus it's filter bar. If so, when the |
| find shortcut is triggered, focus the filter bar. |
| |
| 2019-08-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: CSS Formatter: comments with an escape character aren't formatted |
| https://bugs.webkit.org/show_bug.cgi?id=200168 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Don't allow escaping of the "*" in CSS comments (e.g. `\*/`). |
| |
| Add additional pretty printing rules for comments so that there's always some space between |
| them and the surrounding text. This ensures that they don't interfere with readability. |
| |
| * UserInterface/Workers/Formatter/CSSFormatter.js: |
| (CSSFormatter.prototype._format): |
| |
| * UserInterface/Workers/Formatter/FormatterContentBuilder.js: |
| (FormatterContentBuilder.prototype.get indented): Added. |
| |
| 2019-08-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Console: execution context picker doesn't update when switching to the inferred context from auto |
| https://bugs.webkit.org/show_bug.cgi?id=200279 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| The `representedObject` of the "auto" execution context path component is shared with that |
| execution context's actual path component, meaning that if the user switches from "auto" to |
| that execution context's path component, the underlying `representedObject` wouldn't change, |
| and therfore the `RuntimeManager.Event.ActiveExecutionContextChanged` wouldn't fire. In this |
| case, update the visible ("selected") execution context path component manually. |
| |
| * UserInterface/Views/QuickConsole.js: |
| (WI.QuickConsole.prototype._selectExecutionContext): |
| (WI.QuickConsole.prototype._pathComponentSelected): |
| |
| 2019-08-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Console: all navigation items should be shown in the split console |
| https://bugs.webkit.org/show_bug.cgi?id=200280 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView): |
| (WI.LogContentView.prototype.get navigationItems): |
| Adjust the `visibilityPriority` of each `navigationItems` so that the filter/scope bars are |
| kept visible for longer than the "Preserve Log"/"Emulate User Gesture" toggles. |
| |
| * UserInterface/Views/FindBanner.js: |
| (WI.FindBanner): |
| * UserInterface/Views/FindBanner.css: |
| (.find-banner.console-find-banner > input[type="search"]): |
| (.find-banner.console-find-banner > :matches(input[type="search"], button)): |
| (.find-banner.console-find-banner > input[type="search"]:focus, .find-banner.console-find-banner > input[type="search"]:focus ~ button, .find-banner.console-find-banner > input[type="search"]:not(:placeholder-shown), .find-banner.console-find-banner > input[type="search"]:not(:placeholder-shown) ~ button ): Added. |
| (.find-banner.console-find-banner > input[type="search"]::placeholder): Deleted. |
| (.find-banner.console-find-banner > input[type="search"]:focus): Deleted. |
| (.find-banner.console-find-banner > input[type="search"]:not(:placeholder-shown)): Deleted. |
| (@media (prefers-color-scheme: dark) .find-banner.console-find-banner > input[type=search]:not(:placeholder-shown)): Deleted. |
| Make the `WI.FindBanner` blend in with the surrounding content when it's not focused or has |
| no content. |
| |
| 2019-08-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Storage: disable related agents when the tab is closed |
| https://bugs.webkit.org/show_bug.cgi?id=200117 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Rework how `enable`/`disable` is used for storage-related agents so that events are not sent |
| and data isn't kept alive when the Storage tab isn't enabled. |
| |
| * UserInterface/Controllers/ApplicationCacheManager.js: |
| (WI.ApplicationCacheManager): |
| (WI.ApplicationCacheManage.prototype.get domains): Added. |
| (WI.ApplicationCacheManage.prototype.activateExtraDomain): Added. |
| (WI.ApplicationCacheManager.prototype.initializeTarget): |
| (WI.ApplicationCacheManager.prototype.enable): Added. |
| (WI.ApplicationCacheManager.prototype.disable): Added. |
| (WI.ApplicationCacheManager.prototype.networkStateUpdated): |
| (WI.ApplicationCacheManager.prototype.applicationCacheStatusUpdated): |
| (WI.ApplicationCacheManager.prototype._reset): Added. |
| (WI.ApplicationCacheManager.prototype._mainResourceDidChange): |
| (WI.ApplicationCacheManager.prototype._manifestForFrameLoaded): |
| (WI.ApplicationCacheManager.prototype._framesWithManifestsLoaded): |
| (WI.ApplicationCacheManager.prototype.initialize): Deleted. |
| |
| * UserInterface/Controllers/DOMStorageManager.js: |
| (WI.DOMStorageManager): |
| (WI.DOMStorageManager.prototype.get domains): Added. |
| (WI.DOMStorageManager.prototype.activateExtraDomain): Added. |
| (WI.DOMStorageManager.prototype.initializeTarget): |
| (WI.DOMStorageManager.prototype.enable): Added. |
| (WI.DOMStorageManager.prototype.disable): Added. |
| (WI.DOMStorageManager.prototype.itemsCleared): |
| (WI.DOMStorageManager.prototype.itemRemoved): |
| (WI.DOMStorageManager.prototype.itemAdded): |
| (WI.DOMStorageManager.prototype.itemUpdated): |
| (WI.DOMStorageManager.prototype.inspectDOMStorage): |
| (WI.DOMStorageManager.prototype._reset): Added. |
| (WI.DOMStorageManager.prototype._addDOMStorageIfNeeded): |
| (WI.DOMStorageManager.prototype._addCookieStorageIfNeeded): |
| (WI.DOMStorageManager.prototype._mainResourceDidChange): |
| (WI.DOMStorageManager.prototype.initialize): Deleted. |
| (WI.DOMStorageManager.prototype.domStorageWasAdded): Deleted. |
| |
| * UserInterface/Controllers/DatabaseManager.js: |
| (WI.DatabaseManager): |
| (WI.DatabaseManager.prototype.get domains): Added. |
| (WI.DatabaseManager.prototype.activateExtraDomain): Added. |
| (WI.DatabaseManager.prototype.initializeTarget): |
| (WI.DatabaseManager.prototype.enable): Added. |
| (WI.DatabaseManager.prototype.disable): Added. |
| (WI.DatabaseManager.prototype.databaseWasAdded): |
| (WI.DatabaseManager.prototype.inspectDatabase): |
| (WI.DatabaseManager.prototype._reset): Added. |
| (WI.DatabaseManager.prototype._mainResourceDidChange): |
| (WI.DatabaseManager.prototype.initialize): Deleted. |
| |
| * UserInterface/Controllers/IndexedDBManager.js: |
| (WI.IndexedDBManager): |
| (WI.IndexedDBManager.prototype.get domains): Added. |
| (WI.IndexedDBManager.prototype.activateExtraDomain): Added. |
| (WI.IndexedDBManager.prototype.initializeTarget): |
| (WI.IndexedDBManager.prototype.enable): Added. |
| (WI.IndexedDBManager.prototype.disable): Added. |
| (WI.IndexedDBManager.prototype.clearObjectStore): |
| (WI.IndexedDBManager.prototype._reset): Added. |
| (WI.IndexedDBManager.prototype._mainResourceDidChange): |
| (WI.IndexedDBManager.prototype.initialize): Deleted. |
| |
| * UserInterface/Controllers/AppController.js: |
| (WI.AppController.prototype.activateExtraDomains): |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype.get domains): Added. |
| (WI.CanvasManager.prototype.activateExtraDomain): Added. |
| Only call `enable` on any extra agents if the domain is not controlled by a manager. |
| |
| * UserInterface/Views/StorageTabContentView.js: |
| (WI.StorageTabContentView): |
| (WI.StorageTabContentView.static isTabAllowed): |
| (WI.StorageTabContentView.prototype.canShowRepresentedObject): |
| (WI.StorageTabContentView.prototype.closed): Added. |
| |
| * UserInterface/Test.html: |
| * UserInterface/Test/Test.js: |
| (WI.loaded): |
| (WI.contentLoaded): |
| |
| 2019-08-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: Develop > Start Timeline Recording doesn't work when focused on a detached inspector window |
| https://bugs.webkit.org/show_bug.cgi?id=200125 |
| <rdar://problem/53543008> |
| |
| Reviewed by Brian Burg. |
| |
| Always show the Timelines tab in Web Inspector whenever timeline recording starts/stops. |
| Notify the UIProcess whenever the timeline recording state changes. |
| |
| * UserInterface/Protocol/InspectorFrontendAPI.js: |
| (InspectorFrontendAPI.setTimelineProfilingEnabled): |
| |
| 2019-08-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: "Inspector.initialized" happens before breakpoints are set |
| https://bugs.webkit.org/show_bug.cgi?id=200364 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Allow managers to register a promise that will delay `Inspector.initialized`. This is needed |
| when restoring breakpoints so that "Automatically Show Web Inspector for JSContexts" can set |
| them before any scripts have evaluated, ensuring that no breakpoints are "skipped". |
| |
| * UserInterface/Protocol/Target.js: |
| (WI.Target.prototype.initialize): |
| (WI.Target.registerInitializationPromise): Added. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager): |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager): |
| |
| 2019-08-01 Devin Rousso <drousso@apple.com> |
| |
| Unreviewed, remove `emulateUserGesture` parameter from `Debugger.evaluateOnCallFrame` for iOS 13 |
| |
| Rubber-stamped by Joseph Pecoraro. |
| |
| * UserInterface/Protocol/Legacy/13.0/InspectorBackendCommands.js: |
| * Versions/Inspector-iOS-13.0.json: |
| The iOS 13 protocol has already been decided, so these shouldn't have been added unless they |
| were cherry-picked in. |
| |
| 2019-07-31 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: support emulateUserGesture parameter in Debugger.evaluateOnCallFrame |
| https://bugs.webkit.org/show_bug.cgi?id=200272 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| When paused, evaluating in the console should still respect the "Emulate User Gesture" checkbox. |
| |
| * UserInterface/Controllers/RuntimeManager.js: |
| (WI.RuntimeManager.prototype.evaluateInInspectedWindow): |
| |
| * UserInterface/Protocol/Legacy/13.0/InspectorBackendCommands.js: |
| * Versions/Inspector-iOS-13.0.json: |
| |
| 2019-07-31 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'issueMessage.sourceCodeLocation.sourceCode') |
| https://bugs.webkit.org/show_bug.cgi?id=200296 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| When fetching all `WI.IssueMessage`s for a given `WI.SourceCode`, the `WI.IssueMessage` may |
| be associated in a different way (e.g. by url, instead of `WI.SourceCodeLocation`). As such, |
| we should pass the `WI.SourceCode` along, and use it when adding the `WI.IssueTreeElement`. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._addIssuesForSourceCode): |
| (WI.DebuggerSidebarPanel.prototype._addIssue): |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel.prototype._addIssue): |
| (WI.SourcesNavigationSidebarPanel.prototype._addIssuesForSourceCode): |
| |
| 2019-07-31 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOM: provide a way to disable/breakpoint all event listeners for a given DOM node or event type |
| https://bugs.webkit.org/show_bug.cgi?id=200233 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Often, when trying to debug issues with DOM events, it's extremely tedious to have to go |
| through event listeners one by one and disable them (or set a breakpoint). This patch adds |
| a way of performing these "state modifications" in batch operations, based on the current |
| grouping method of the Event Listeners section. |
| |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager.supportsDisablingEventListeners): Added. |
| (WI.DOMManager.supportsEventListenerBreakpoints): Added. |
| Common convenience functions for checking for protocol support. |
| |
| * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: |
| (WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.createEventListenerSection): |
| * UserInterface/Views/DOMNodeDetailsSidebarPanel.css: |
| (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners .details-section.event-listener-section > .header > .event-listener-options): Added. |
| (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners .details-section.event-listener-section:hover > .header > .event-listener-options): Added. |
| Add an options element that shows a context menu: |
| - "Disable Event Listeners"/"Enable Event Listeners" |
| - "Add Breakpoints"/"Delete Breakpoints" |
| Each action applies the corresponding state to all event listeners in that section. |
| |
| * UserInterface/Views/EventListenerSectionGroup.js: |
| (WI.EventListenerSectionGroup): |
| (WI.EventListenerSectionGroup.prototype.get supportsStateModification): Added. |
| (WI.EventListenerSectionGroup.prototype.get isEventListenerDisabled): Added. |
| (WI.EventListenerSectionGroup.prototype.set isEventListenerDisabled): Added. |
| (WI.EventListenerSectionGroup.prototype.get hasEventListenerBreakpoint): Added. |
| (WI.EventListenerSectionGroup.prototype.set hasEventListenerBreakpoint): Added. |
| (WI.EventListenerSectionGroup.prototype._updateDisabledToggle): Added. |
| (WI.EventListenerSectionGroup.prototype._updateBreakpointToggle): Added. |
| (WI.EventListenerSectionGroup.prototype._createDisabledToggleRow): Deleted. |
| (WI.EventListenerSectionGroup.prototype._createBreakpointToggleRow): Deleted. |
| Expose a way to modify the event listener's state so that the UI (e.g. checkbox and title) |
| also get's updated. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-07-30 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Resources: Display outline around images when viewing image collections |
| https://bugs.webkit.org/show_bug.cgi?id=200212 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/CollectionContentView.css: |
| (.content-view.collection .resource.image img): |
| (.content-view.collection .resource.image img:hover): |
| |
| 2019-07-29 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Resources: add a "Show Grid" navigation item for the Images collection |
| https://bugs.webkit.org/show_bug.cgi?id=200260 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Each subview `WI.ImageResourceContentView` already listens for changes to the underlying |
| `WI.settings.showImageGrid` and adds the `.show-grid` class if enabled. As such, this change |
| just adds a `WI.ButtonNavigationItem` for toggling `WI.settings.showImageGrid` from the |
| Images "folder". |
| |
| * UserInterface/Views/ResourceCollectionContentView.js: |
| (WI.ResourceCollectionContentView): |
| (WI.ResourceCollectionContentView.prototype.get navigationItems): |
| (WI.ResourceCollectionContentView.prototype.attached): Added. |
| (WI.ResourceCollectionContentView.prototype.detached): Added. |
| (WI.ResourceCollectionContentView.prototype._updateImageTypeScopeBar): |
| Drive-by: hide the image type `WI.ScopeBar` if there's only one type of image. |
| (WI.ResourceCollectionContentView.prototype._handleShowGridButtonClicked): Added. |
| (WI.ResourceCollectionContentView.prototype._handleShowImageGridSettingChanged): Added. |
| |
| 2019-07-29 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: add -webkit-* keywords for *-height CSS properties |
| https://bugs.webkit.org/show_bug.cgi?id=200240 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| |
| * UserInterface/Views/Main.css: |
| (.message-text-view): |
| * UserInterface/Views/Toolbar.css: |
| (.toolbar .control-section): |
| (.toolbar .item-section): |
| Replace `-webkit-min-content` with `min-content`. |
| |
| 2019-07-26 Greg Doolittle <gr3g@apple.com> |
| |
| Web Inspector: AXI: Audit: Typo of "some" as "somee" |
| https://bugs.webkit.org/show_bug.cgi?id=200166 |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype._addDefaultTests): |
| (WI.AuditManager): |
| |
| 2019-07-24 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: no context menu items work when context menu clicking on "Add Breakpoint" |
| https://bugs.webkit.org/show_bug.cgi?id=199953 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.addMouseDownContextMenuHandlers): Added. |
| Create a helper function for managing elements that show a context menu on "mousedown". |
| |
| * UserInterface/Base/SearchUtilities.js: |
| (WI.SearchUtilities.createSettingsButton): |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView.prototype.initialLayout): |
| (WI.CanvasContentView.prototype._populateCanvasElementButtonContextMenu): Added. |
| (WI.CanvasContentView.prototype._populateViewShaderButtonContextMenu): Added. |
| (WI.CanvasContentView.prototype._populateViewRecordingButtonContextMenu): Added. |
| (WI.CanvasContentView.prototype._handleCanvasElementButtonMouseDown): Deleted. |
| (WI.CanvasContentView.prototype._handleViewShaderButtonMouseDown): Deleted. |
| (WI.CanvasContentView.prototype._handleViewRecordingButtonMouseDown): Deleted. |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| (WI.DebuggerSidebarPanel.prototype._populateCreateBreakpointContextMenu): Added. |
| (WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointMouseDown): Deleted. |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype._populateResourceGroupingModeContextMenu): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._populateCreateBreakpointContextMenu): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeMouseDown): Deleted. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleCreateBreakpointMouseDown): Deleted. |
| |
| * UserInterface/Views/TabBar.js: |
| (WI.TabBar): |
| (WI.TabBar.prototype._handleTabPickerTabContextMenu): Deleted. |
| * UserInterface/Views/LegacyTabBar.js: |
| (WI.LegacyTabBar): |
| (WI.LegacyTabBar.prototype._handleTabPickerTabContextMenu): Deleted. |
| Remove the "contextmenu" handler on the tab picker, as that's already used by the entire |
| tab bar to show/hide tabs. |
| |
| 2019-07-24 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: print the target of `console.screenshot` last so the target is the closest item to the image |
| https://bugs.webkit.org/show_bug.cgi?id=199308 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WI.ConsoleMessageView.prototype.render): |
| (WI.ConsoleMessageView.prototype._appendMessageTextAndArguments): |
| (WI.ConsoleMessageView.prototype._handleContextMenu): |
| * UserInterface/Views/ConsoleMessageView.css: |
| (.console-image > .console-message-body > :matches(hr, img)): Added. |
| (.console-image > .console-message-body > hr): Added. |
| (.console-image > .console-message-body > img): Added. |
| (.console-log-level.console-image::before): Added. |
| (.console-message-body > .console-image): Deleted. |
| (.console-log-level.console-image-container::before): Deleted. |
| Allow `ConsoleMessage.MessageType.Image` to be an `ConsoleMessage.MessageLevel.Error`, and |
| print the message (and extra parameters) in that case. |
| Drive-by: reorganize the switch-case so all paths have the same `default` case. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-07-23 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: Command-X should cut selected properties |
| https://bugs.webkit.org/show_bug.cgi?id=199341 |
| |
| Reviewed by Devin Rousso. |
| |
| Implement cutting of selected CSS properties in the style editor. |
| Unify cutting and copying logic wherever possible. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.placeTextCaretInFocusedProperty): Added. |
| Cut/copy events could only fire on SpreadsheetCSSStyleDeclarationEditor element if it |
| has selection inside of it. Placing text caret at the beginning of the focused property |
| ensures that. |
| |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyCopy): Deleted. |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._copySelectedProperties): Added. |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._removeSelectedProperties): Added. |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._stopSelection): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| Remove old copying logic. |
| |
| 2019-07-23 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Display "Resource has no content" for about:blank iframes instead of an error |
| https://bugs.webkit.org/show_bug.cgi?id=198029 |
| |
| Reviewed by Devin Rousso. |
| |
| Display "about:blank" in the middle of the content view when selecting "about:blank" resources. |
| Previoulsly, we showed a misleading "An error occurred trying to load the resource" error |
| message. |
| |
| * UserInterface/Models/CSSStyleSheet.js: |
| (WI.CSSStyleSheet.prototype.requestContentFromBackend): |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.prototype.requestContentFromBackend): |
| * UserInterface/Models/Script.js: |
| (WI.Script.prototype.requestContentFromBackend): |
| * UserInterface/Models/SourceCode.js: |
| (WI.SourceCode.generateSpecialContentForURL): |
| (WI.SourceCode.prototype._processContent): |
| (WI.SourceCode): |
| * UserInterface/Views/ResourceContentView.js: |
| (WI.ResourceContentView.prototype._contentAvailable): |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype._contentAvailable): |
| (WI.SourceCodeTextEditor.prototype._showMessage): |
| * UserInterface/Views/TextResourceContentView.js: |
| (WI.TextResourceContentView.prototype._contentDidPopulate): |
| Display empty text editor when it has no content instead of "Resource has no content" message. |
| |
| 2019-07-22 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: Breakpoint at specified location already exists. |
| https://bugs.webkit.org/show_bug.cgi?id=197034 |
| <rdar://problem/50049004> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| When "adjusting" a `WI.Breakpoint` (e.g. removing and then re-adding with a different |
| configuration), make sure to only re-add the `WI.Breakpoint` to the `WI.Target` it was just |
| removed from, rather to all `WI.targets`. |
| |
| Since we iterate over `WI.targets` in both `WI.DebuggerManager.prototype._setBreakpoint` and |
| `WI.DebuggerManager.prototype._removeBreakpoint`, we ended up iterating `WI.targets` twice. |
| |
| Each time the `WI.Breakpoint` is removed from a `WI.Target`, pass the `WI.Target` to the |
| `callback` given to `WI.DebuggerManager.prototype._removeBreakpoint`, so that the eventual |
| call to `WI.DebuggerManager.prototype._setBreakpoint` can reuse it as the `specificTarget`, |
| instead of iterating `WI.targets` (meaning we only iterate it once). |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager.prototype.addBreakpoint): |
| (WI.DebuggerManager.prototype._removeBreakpoint.didRemoveBreakpoint): |
| (WI.DebuggerManager.prototype._breakpointDisplayLocationDidChange): |
| (WI.DebuggerManager.prototype._breakpointEditablePropertyDidChange): |
| |
| 2019-07-22 Devin Rousso <drousso@apple.com> |
| |
| Localization: change fps to FPS |
| <rdar://problem/53342508> |
| |
| Rubber-stamped by Joseph Pecoraro. |
| |
| * UserInterface/Views/RenderingFrameTimelineOverviewGraph.js: |
| (WI.RenderingFrameTimelineOverviewGraph.prototype._updateDividers.createDividerAtPosition): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-07-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Issues toggling multiple breakpoints on one line |
| https://bugs.webkit.org/show_bug.cgi?id=199918 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor): |
| (WI.SourceCodeTextEditor.prototype.close): |
| (WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu): |
| (WI.SourceCodeTextEditor.prototype.textEditorUpdatedFormatting): |
| (WI.SourceCodeTextEditor.prototype._handleFormatterDidChange): Added. |
| Listen for `WI.SourceCode.Event.FormatterDidChange` events as there may be multiple content |
| views for the same `WI.SourceCode`. Previously, if there were, only the active one would |
| properly update it's "line -> column -> breakpoint" mapping, causing an error to be thrown |
| when the non-active content views tried to retrieve the breakpoint for the new line/column. |
| |
| 2019-07-17 Olivier Blin <olivier.blin@softathome.com> |
| |
| Web Inspector: application/xml content not shown |
| https://bugs.webkit.org/show_bug.cgi?id=199861 |
| |
| Reviewed by Devin Rousso. |
| |
| application/xml content from XHR requests was not shown in the |
| inspector, an error message was displayed instead. |
| |
| application/xml content should be treated as text, since |
| application/xml is the standard mimetype for XML content. |
| Apache serves XML content with the application/xml mimetype by |
| default. |
| |
| * UserInterface/Base/MIMETypeUtilities.js: |
| (WI.fileExtensionForMIMEType): |
| Report "xml" extension for "application/xml" mimetype. |
| (WI.shouldTreatMIMETypeAsText): |
| Treat XML files as text. |
| |
| 2019-07-16 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Changes panel should be strictly LTR |
| https://bugs.webkit.org/show_bug.cgi?id=199767 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Changes panel is primarily CSS code and CSS is strictly LTR. |
| |
| * UserInterface/Views/ChangesDetailsSidebarPanel.js: |
| (WI.ChangesDetailsSidebarPanel): |
| |
| 2019-07-15 Youenn Fablet <youenn@apple.com> |
| |
| Enable a debug WebRTC mode without any encryption |
| https://bugs.webkit.org/show_bug.cgi?id=199177 |
| <rdar://problem/52074986> |
| |
| Reviewed by Eric Carlson. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Main.js: |
| |
| 2019-07-15 Greg Doolittle <gr3g@apple.com> |
| |
| Web Inspector: AXI: Audit: Typos in Accessibility audits |
| https://bugs.webkit.org/show_bug.cgi?id=199716 |
| <rdar://problem/52721711> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| |
| 2019-07-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Device Settings: update Safari user agent from 12.2 to 13.0 |
| https://bugs.webkit.org/show_bug.cgi?id=199758 |
| |
| Reviewed by Maciej Stachowiak. |
| |
| * UserInterface/Base/Main.js: |
| (WI._handleDeviceSettingsToolbarButtonClicked): |
| |
| 2019-07-12 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Changes: dismissing a blank property makes style rule to show in Changes panel |
| https://bugs.webkit.org/show_bug.cgi?id=199760 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype._updateOwnerStyleText): |
| Call updatePropertiesModifiedState even when _updateOwnerStyleText returns early. |
| |
| 2019-07-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: always show all navigation bar items, but disable those that wouldn't work |
| https://bugs.webkit.org/show_bug.cgi?id=199594 |
| |
| Reviewed by Ross Kirsling. |
| |
| Reorder the navigation items of the Elements tab (left to right): |
| - Show rulers |
| - Force print media styles |
| - Force Dark Appearance / Force Light Appearance |
| - Show compositing borders |
| - Enable paint flashing |
| - Show shadow DOM nodes |
| This way, "related" (e.g. print styles and dark/light appearance both relate to CSS media) |
| toggles are grouped closer together. |
| |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView): |
| (WI.DOMTreeContentView.prototype.get navigationItems): |
| (WI.DOMTreeContentView.prototype._defaultAppearanceDidChange): |
| (WI.DOMTreeContentView.prototype._toggleAppearance): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-07-11 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Layers: Uncaught Exception: Request with id = 2 failed. {"code":-32601,"message":"'Page' domain was not found","data":[{"code":-32601,"message":"'Page' domain was not found"}]} |
| https://bugs.webkit.org/show_bug.cgi?id=199555 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Use modern inspected target support checking, and defer agent commands until a target is |
| available. |
| |
| * UserInterface/Views/Layers3DContentView.js: |
| (WI.Layers3DContentView): |
| (WI.Layers3DContentView.prototype._showPaintRectsSettingChanged): |
| (WI.Layers3DContentView.prototype._updateCompositingBordersButtonState): |
| (WI.Layers3DContentView.prototype._toggleCompositingBorders): |
| |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView): |
| (WI.DOMTreeContentView.prototype._toggleCompositingBorders): |
| (WI.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings): |
| (WI.DOMTreeContentView.prototype._showPaintRectsSettingChanged): |
| (WI.DOMTreeContentView.prototype._showPrintStylesChanged): |
| (WI.DOMTreeContentView.prototype._showRulersChanged): |
| Drive-by: apply the same changes to the Elements tab for when the Layers tab isn't enabled. |
| |
| 2019-07-09 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: replace WTF::Vector with std::initializer_list in CallTracer to avoid dynamic allocations |
| https://bugs.webkit.org/show_bug.cgi?id=199611 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/Recording.js: |
| (WI.Recording.prototype.async swizzle): |
| Drive-by: handle the situation where a parameter is an array of deduplicated strings, which |
| would otherwise be treated as an array of numbers. |
| |
| 2019-07-09 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Add another Protocol Version (iOS 13.0) |
| https://bugs.webkit.org/show_bug.cgi?id=199631 |
| <rdar://problem/47538193> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Protocol/Legacy/13.0/InspectorBackendCommands.js: Added. |
| * Versions/Inspector-iOS-13.0.json: Added. |
| |
| 2019-07-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: special breakpoints and event targets should be sorted into separate "areas" |
| https://bugs.webkit.org/show_bug.cgi?id=199554 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Move the special All Requests breakpoint down to be right above all other URL breakpoints. |
| Move the `window` object tree element below other DOM node tree elements. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._addTreeElement): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel.prototype._insertDebuggerTreeElement): |
| |
| 2019-07-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOM Debugger: there should be different icons for each type of DOM breakpoint |
| https://bugs.webkit.org/show_bug.cgi?id=199552 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| [S] for Subtree Modified |
| [A] for Attribute Modified |
| [R] for Node Removed |
| |
| * UserInterface/Views/DOMBreakpointTreeElement.js: |
| (WI.DOMBreakpointTreeElement): |
| * UserInterface/Views/DOMBreakpointTreeElement.css: Added. |
| (.breakpoint.dom.breakpoint-for-subtree-modified:not(.breakpoint-paused-icon) .icon): |
| (.breakpoint.dom.breakpoint-for-attribute-modified:not(.breakpoint-paused-icon) .icon): |
| (.breakpoint.dom.breakpoint-for-node-removed:not(.breakpoint-paused-icon) .icon): |
| |
| * UserInterface/Main.html: |
| * UserInterface/Images/DOMBreakpointAttributeModified.svg: Added. |
| * UserInterface/Images/DOMBreakpointNodeRemoved.svg: Added. |
| * UserInterface/Images/DOMBreakpointSubtreeModified.svg: Added. |
| |
| 2019-07-08 Devin Rousso <drousso@apple.com> |
| |
| Uncaught Exception: Unexpected enum value: CPU |
| https://bugs.webkit.org/show_bug.cgi?id=199564 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype._updateAutoCaptureInstruments): |
| Filter the list of auto-capture instruments based on what's actually supported, instead of |
| directly using the saved list from the `WI.Setting`. |
| |
| 2019-07-08 Devin Rousso <drousso@apple.com> |
| |
| Enabling the Layers tab hides the paint flashing button |
| https://bugs.webkit.org/show_bug.cgi?id=199549 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Still show the Compositing Borders and Paint Flashing navigation items in the Elements tab |
| even when the Layers tab is enabled (just like the Layers details sidebar). |
| |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView.prototype.get navigationItems): |
| (WI.DOMTreeContentView.prototype._updateCompositingBordersButtonToMatchPageSettings): |
| |
| 2019-07-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: Elements: pasting in the Styles sidebar adds a text node to the DOM tree |
| https://bugs.webkit.org/show_bug.cgi?id=199588 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/Main.js: |
| (WI._paste): |
| Bail if `event.defaultPrevented`, as that means that something else has handled (and likely |
| overrode) this event. |
| |
| 2019-07-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: the "x" in the Exception icon overlaps the border |
| https://bugs.webkit.org/show_bug.cgi?id=199553 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Images/Exception.svg: |
| * UserInterface/Images/Function.svg: |
| * UserInterface/Images/TailDeletedFunction.svg: |
| |
| 2019-07-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: there should be a different icon for URL breakpoints |
| https://bugs.webkit.org/show_bug.cgi?id=199550 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Use the same (down|up) arrow icon for the Network Tab and the Network timeline. |
| |
| * UserInterface/Views/URLBreakpointTreeElement.js: |
| (WI.URLBreakpointTreeElement): |
| * UserInterface/Views/URLBreakpointTreeElement.css: |
| (.breakpoint.url:not(.breakpoint-paused-icon) .icon): Added. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._addBreakpoint): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel.prototype._addBreakpoint): |
| |
| * UserInterface/Images/URLBreakpoint.svg: Added. |
| |
| 2019-07-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: CPU: the Duration string isn't localized |
| https://bugs.webkit.org/show_bug.cgi?id=199582 |
| <rdar://problem/51698165> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.prototype._layoutEnergyChart): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-07-06 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: unbalanced quotes and parenthesis aren't displayed as property closed after editing values |
| https://bugs.webkit.org/show_bug.cgi?id=199090 |
| <rdar://problem/51965431> |
| |
| Reviewed by Devin Rousso. |
| |
| `}` gets added by WI.tokenizeCSSValue (called by SpreadsheetStyleProperty.prototype._renderValue) |
| when it encounters unbalanced quotes. Fix unbalanced quotes by re-rendering the value from the model, |
| not the DOM content. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit): |
| For consistency, render property name from the model as well. |
| |
| 2019-07-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: current call frame indicator not visible in dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=199047 |
| <rdar://problem/51922895> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/CallFrameTreeElement.css: |
| (.tree-outline .item.call-frame .status > .status-image): |
| (.tree-outline .item.call-frame.selected .status > .status-image): |
| Replace the CSS variables used for `fill` with their actual color value (in `light` mode), |
| as the semantic "name" of the variable doesn't really match its usage. As an example, the |
| current call frame shouldn't rely on the value of `--border-color`, as it's not a "border". |
| |
| 2019-07-05 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Elements: use a CSS transition when showing/hiding DOM breakpoint gutter |
| https://bugs.webkit.org/show_bug.cgi?id=199411 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/DOMTreeContentView.css: |
| (.content-view.dom-tree .tree-outline.dom): |
| |
| 2019-07-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: allow nodes to be copied and pasted |
| https://bugs.webkit.org/show_bug.cgi?id=199182 |
| |
| Reviewed by Matt Baker. |
| |
| Copy is already supported, so there's nothing that needs to be done there. |
| |
| Pasting is as simple as calling `insertAdjacentHTML("afterend", ...)` on the selected node. |
| |
| * UserInterface/Base/Main.js: |
| (WI.contentLoaded): |
| (WI._paste): Added. |
| |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView.prototype.handlePasteEvent): Added. |
| |
| 2019-07-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOM Debugger: descendant breakpoints should be able to be enabled/disabled/deleted from a collapsed parent |
| https://bugs.webkit.org/show_bug.cgi?id=199332 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager.prototype.get domBreakpoints): |
| (WI.DOMDebuggerManager.prototype.domBreakpointsForNode): |
| (WI.DOMDebuggerManager.prototype.domBreakpointsInSubtree): Added. |
| (WI.DOMDebuggerManager.prototype.removeDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype._detachDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype._detachBreakpointsForFrame): |
| (WI.DOMDebuggerManager.prototype._speculativelyResolveDOMBreakpointsForURL): |
| (WI.DOMDebuggerManager.prototype._resolveDOMBreakpoint): |
| Provide a way of getting a "summary" array of `DOMBreakpoint`s for all descendant nodes. |
| Rework the data structure for holding `DOMBreakpoint`s to use a `Multimap` so no duplicates |
| can be added (it uses a `Set` instead of an `Array`). |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement): |
| (WI.DOMTreeElement.prototype.get hasBreakpoint): |
| (WI.DOMTreeElement.prototype.set breakpointStatus): |
| (WI.DOMTreeElement.prototype.bindRevealDescendantBreakpointsMenuItemHandler): Added. |
| (WI.DOMTreeElement.prototype._subtreeBreakpointChanged): Added. |
| (WI.DOMTreeElement.prototype._updateBreakpointStatus): |
| (WI.DOMTreeElement.prototype._statusImageContextmenu): |
| (WI.DOMTreeElement.prototype.subtreeBreakpointCountDidChange): Deleted. |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype.populateContextMenu): |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForDOMNode): |
| (WI.appendContextMenuItemsForDOMNodeBreakpoints): |
| Keep track of the actual descendant `DOMNodeTreeElement` that have breakpoints, rather than |
| just a count, so that the "Reveal Descendant Breakpoints" action is able to access them. |
| Change "Reveal Descendant Breakpoints" to reveal and select all descendant breakpoints |
| instead of just the first one. |
| Drive-by: don't remove specific (event) listener breakpoints when invoking the |
| "Delete Descendant Breakpoints" action, as that's not obvious from the UI. |
| |
| * UserInterface/Controllers/BreakpointPopoverController.js: |
| (WI.BreakpointPopoverController.prototype.appendContextMenuItems): |
| * UserInterface/Views/DOMBreakpointTreeElement.js: |
| (WI.DOMBreakpointTreeElement.prototype.populateContextMenu): |
| * UserInterface/Views/DOMNodeTreeElement.js: |
| (WI.DOMNodeTreeElement.prototype.populateContextMenu): |
| * UserInterface/Views/EventBreakpointTreeElement.js: |
| (WI.EventBreakpointTreeElement.prototype.populateContextMenu): |
| * UserInterface/Views/URLBreakpointTreeElement.js: |
| (WI.URLBreakpointTreeElement.prototype.populateContextMenu): |
| Remove the separator before "Delete Breakpoint" so all breakpoint actions are in the same section. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Multimap.js: |
| (Multimap.prototype.get size): Added. |
| |
| 2019-07-02 Matt Baker <mattbaker@apple.com> |
| |
| REGRESSION (r238563): Web Inspector: Selection is erratic when holding Up/Down on Network Table |
| https://bugs.webkit.org/show_bug.cgi?id=193841 |
| <rdar://problem/47559124> |
| |
| Reviewed by Devin Rousso. |
| |
| Selecting and revealing a row after reloading Table data, but before the |
| layout that populates visible rows, could cause the Table to always be |
| scrolled so that the revealed row is first. |
| |
| This patch fixes `revealRow` by calculating the position of the row being |
| revealed in the absence of its DOM element, so that the Table is only |
| scrolled when necessary. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype.revealRow): |
| (WI.Table.prototype._resizeColumnsAndFiller): |
| Drive-by fix: use realOffsetWidth for consistency. |
| (WI.Table.prototype._updateVisibleRows): |
| (WI.Table.prototype._calculateOffsetHeight): |
| (WI.Table.prototype._calculateScrollTop): |
| |
| 2019-07-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debug: "Reset Web Inspector" should also clear the saved window size and attachment side |
| https://bugs.webkit.org/show_bug.cgi?id=198956 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Main.js: |
| (WI.reset): Added. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createDebugSettingsView): |
| |
| 2019-07-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: missing demo audits for WebInspectorAudit functions |
| https://bugs.webkit.org/show_bug.cgi?id=198719 |
| |
| Reviewed by Matt Baker. |
| |
| Other than the LayoutTests, there's no way to see an example of the functionality of many of |
| the exposed `WebInspectorAudit` functions. There should be a demo audit for every exposed |
| function so they're more discoverable. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype._addDefaultTests): |
| (WI.AuditManager.prototype._addDefaultTests.removeWhitespace): Added. |
| Move all demo audit test functions to be actual JavaScript functions, which are then |
| stringified and stripped of unnecessary white-space. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-07-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r245498): Timelines: CPU: discontinuities are filled in by the next record |
| https://bugs.webkit.org/show_bug.cgi?id=198927 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype.capturingStarted): |
| (WI.TimelineManager.prototype.capturingStopped): |
| * UserInterface/Models/TimelineRecording.js: |
| (WI.TimelineRecording): |
| (WI.TimelineRecording.prototype.start): |
| (WI.TimelineRecording.prototype.capturingStarted): Added. |
| (WI.TimelineRecording.prototype.capturingStopped): Added. |
| (WI.TimelineRecording.prototype.reset): |
| (WI.TimelineRecording.prototype.addRecord): |
| (WI.TimelineRecording.prototype.discontinuitiesInTimeRange): |
| (WI.TimelineRecording.prototype.addDiscontinuity): Deleted. |
| Notify the `TimelineRecording` when capturing has started/stopped. |
| Adjust the first record after a discontinuity to have it's `startTime` match the `endTime` |
| of the most recent discontinuity. |
| |
| * UserInterface/Models/Timeline.js: |
| (WI.Timeline.prototype.addRecord): |
| * UserInterface/Models/CPUTimeline.js: |
| (WI.CPUTimeline.prototype.addRecord): |
| * UserInterface/Models/CPUTimelineRecord.js: |
| (WI.CPUTimelineRecord.prototype.adjustStartTime): Added. |
| (WI.CPUTimelineRecord.prototype.adjustStartTimeToLastRecord): Deleted. |
| * UserInterface/Models/MemoryTimeline.js: |
| (WI.MemoryTimeline.prototype.addRecord): |
| * UserInterface/Models/MemoryTimelineRecord.js: |
| (WI.MemoryTimelineRecord.prototype.adjustStartTime): Added. |
| (WI.MemoryTimelineRecord.prototype.adjustStartTimeToLastRecord): Deleted. |
| * UserInterface/Models/NetworkTimeline.js: |
| (WI.NetworkTimeline.prototype.addRecord): |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.prototype.layout): |
| * UserInterface/Views/MemoryTimelineOverviewGraph.js: |
| (WI.MemoryTimelineOverviewGraph.prototype.layout): |
| * UserInterface/Views/MemoryTimelineView.js: |
| (WI.MemoryTimelineView.prototype.layout): |
| Include discontinuities that exactly match the start/end time of the record immediately |
| before/after the discontinuity. |
| |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView): |
| (WI.TimelineRecordingContentView.prototype._handleTimelineCapturingStateChanged): |
| (WI.TimelineRecordingContentView.prototype._recordingReset): |
| Move the logic for handling discontinuity start/end times to the `TimelineRecording`. |
| |
| * UserInterface/Base/Utilities.js: |
| |
| 2019-06-29 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Remove trailing white-space |
| https://bugs.webkit.org/show_bug.cgi?id=199346 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype._initiatorCallFramesFromPayload): |
| * UserInterface/Images/Import.svg: |
| * UserInterface/Views/CanvasOverviewContentView.css: |
| (.navigation-bar > .item.canvas-recording-auto-capture > label > input): |
| * UserInterface/Views/DataGrid.css: |
| (.data-grid .resizer): |
| * UserInterface/Views/DatabaseContentView.css: |
| (.storage-view): |
| * UserInterface/Views/GoToLineDialog.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/GradientSlider.css: |
| (.gradient-slider > .add-area): |
| (.gradient-slider-knob > :matches(img, div)): |
| * UserInterface/Views/ResourceDetailsSection.css: |
| * UserInterface/Views/ScrubberNavigationItem.css: |
| (.navigation-bar .item.scrubber > input[disabled]): |
| * UserInterface/Views/SourceCodeTextEditor.css: |
| (.popover .expandable): |
| * UserInterface/Views/TimelineRecordBar.css: |
| (.timeline-record-bar.timeline-record-type-script.garbage-collected > .segment,): |
| * UserInterface/Workers/HeapSnapshot/HeapSnapshotWorker.js: |
| (HeapSnapshotWorker.prototype.createSnapshot): |
| |
| 2019-06-29 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Remove duplicate "Private" section and fix white space |
| |
| Unreviewed code style fix. |
| |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout): |
| |
| 2019-06-27 Beth Dakin <bdakin@apple.com> |
| |
| Upstream use of MACCATALYST |
| https://bugs.webkit.org/show_bug.cgi?id=199245 |
| rdar://problem/51687723 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/SDKVariant.xcconfig: |
| |
| 2019-06-27 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: throw an error if console.count/console.countReset is called with an object that throws an error from toString |
| https://bugs.webkit.org/show_bug.cgi?id=199252 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Add entries for `console.countReset` and `console.timeLog`. |
| |
| Rename `title` to `label` for `console.time`, `console.timeLog`, and `console.timeEnd` to |
| better match the spec. |
| |
| * UserInterface/Models/NativeFunctionParameters.js: |
| |
| 2019-06-26 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Update legacy backend commands after enum name change |
| https://bugs.webkit.org/show_bug.cgi?id=199250 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/12.2/InspectorBackendCommands.js: |
| |
| 2019-06-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: Elements: the forced pseudo-class indicator isn't visible when hovering |
| https://bugs.webkit.org/show_bug.cgi?id=199166 |
| |
| Reviewed by Matt Baker. |
| |
| Make the pseudo-class indicator into its own element instead of being a `::before`. |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement): |
| (WI.DOMTreeElement.prototype.updateSelectionArea): |
| (WI.DOMTreeElement.prototype.updateTitle): |
| (WI.DOMTreeElement.prototype._updatePseudoClassIndicator): Added. |
| (WI.DOMTreeElement.prototype.get pseudoClassesEnabled): Deleted. |
| (WI.DOMTreeElement.prototype._nodePseudoClassesDidChange): Deleted. |
| |
| * UserInterface/Views/DOMTreeOutline.css: |
| (.tree-outline.dom): |
| (.tree-outline.dom li .pseudo-class-indicator): Added. |
| (body[dir=ltr] .tree-outline.dom li .pseudo-class-indicator): Added. |
| (body[dir=rtl] .tree-outline.dom li .pseudo-class-indicator): Added. |
| (.tree-outline.dom:focus li.selected .pseudo-class-indicator): Added. |
| (.tree-outline.dom li.pseudo-class-enabled > .selection-area::before): Deleted. |
| (body[dir=ltr] .tree-outline.dom li.pseudo-class-enabled > .selection-area::before): Deleted. |
| (body[dir=rtl] .tree-outline.dom li.pseudo-class-enabled > .selection-area::before): Deleted. |
| (.tree-outline.dom:focus li.selected.pseudo-class-enabled > .selection-area::before): Deleted. |
| |
| * UserInterface/Views/FormattedValue.css: |
| (.formatted-node > .tree-outline.dom): |
| Adjust the indent of any `DOMTreeOutline` so there's more room for the pseudo-class |
| indicator, such as in the Console. |
| |
| 2019-06-25 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Elements: show shadow DOM by default |
| https://bugs.webkit.org/show_bug.cgi?id=199128 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Setting.js: |
| |
| * UserInterface/Test/Test.js: |
| (WI.loaded): |
| Overriding the default value isn't necessary since the default is now true. |
| |
| 2019-06-25 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| REGRESSION(r246621): Web Inspector: Styles: property may get removed when editing after deleting value |
| https://bugs.webkit.org/show_bug.cgi?id=199143 |
| <rdar://problem/52042815> |
| |
| Reviewed by Matt Baker. |
| |
| r246621 affected when WI.CSSStyleDeclaration.Event.PropertiesChanged event is fired, which caused |
| SpreadsheetCSSStyleDeclarationEditor to possibly enter a state when `focused` property is |
| incorrectly set to false. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved): Removed. |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyWillRemove): Added. |
| Renamed from "removed" to "willRemove" since we need to call it before the property DOM element |
| is detached from the document. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.remove): |
| Don't set focused to false when the removed property wasn't focused. |
| This code need to exist because removing focused element from the DOM doesn't trigger blur event. |
| |
| 2019-06-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Implement console.timeLog |
| https://bugs.webkit.org/show_bug.cgi?id=199184 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WI.ConsoleMessageView.prototype._appendMessageTextAndArguments): |
| Time messages (like timeLog) do not include their messageText |
| in their parameters list. So to behave more like normal logs |
| build a parameter list that includes it at the front. |
| |
| 2019-06-23 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION (r246684): Dark Mode: dashboard buttons should have no background |
| https://bugs.webkit.org/show_bug.cgi?id=199136 |
| <rdar://problem/52035798> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/DefaultDashboardView.css: |
| (@media (prefers-color-scheme: dark)): |
| (.toolbar .dashboard .item.button,): |
| |
| 2019-06-23 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: show green highlight for newly added properties only when name and value are present |
| https://bugs.webkit.org/show_bug.cgi?id=199131 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.updateStatus): |
| |
| 2019-06-22 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| REGRESSION(r241980): Web Inspector: Styles: Pressing Tab/Enter on last property no longer focuses on selector on next rule |
| https://bugs.webkit.org/show_bug.cgi?id=199125 |
| <rdar://problem/52011182> |
| |
| Reviewed by Matt Baker. |
| |
| Since SpreadsheetSelectorField's focus handler was removed in r241980, focusing on the selector element |
| doesn't start editing it. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.startEditingRuleSelector): |
| |
| 2019-06-22 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: unbalanced quotes and parenthesis aren't displayed as property closed after editing values |
| https://bugs.webkit.org/show_bug.cgi?id=199090 |
| <rdar://problem/51965431> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur): |
| Unbalanced quotes and parenthesis are fixed inside of CSSProperty's rawValue setter. |
| Render the value from the model, not the view. |
| |
| 2019-06-21 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: remove unused DataGrid style .force-focus |
| https://bugs.webkit.org/show_bug.cgi?id=199112 |
| <rdar://problem/51993412> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/HeapAllocationsTimelineView.css: |
| (.timeline-view.heap-allocations > .data-grid:not(:focus) tr.selected.invalid): |
| (.timeline-view.heap-allocations > .data-grid:not(:focus, .force-focus) tr.selected.invalid): Deleted. |
| |
| * UserInterface/Views/ResourceTreeElement.css: |
| (.item.resource.resource-type-websocket:not(.selected) .status .ready-state.open,): |
| (.item.resource.resource-type-websocket:not(.selected) .status .ready-state.connecting,): |
| Missed in https://bugs.webkit.org/show_bug.cgi?id=190480. |
| |
| 2019-06-21 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: remove .legacy-mac/.latest-mac CSS classes, standardize on .latest-mac UI |
| https://bugs.webkit.org/show_bug.cgi?id=199109 |
| <rdar://problem/51991129> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Drop legacy macOS version support from Web Inspector UI. |
| |
| * UserInterface/Base/Main.js: |
| |
| * UserInterface/Views/DefaultDashboardView.css: |
| (@media (prefers-color-scheme: dark)): |
| (body.latest-mac .toolbar .dashboard .item.button): Deleted. |
| |
| * UserInterface/Views/Toolbar.css: |
| (.toolbar): |
| (.toolbar .item.button,): |
| (.toolbar .search-bar > input[type="search"]): |
| (.toolbar .search-bar > input[type="search"]:focus): |
| (@media (-webkit-min-device-pixel-ratio: 2)): |
| (.toolbar .item.button:active): |
| (body.window-inactive .toolbar .item.button,): |
| (@media (prefers-color-scheme: dark)): |
| (.toolbar .search-bar > input[type="search"]::placeholder): |
| (body.window-inactive .toolbar .search-bar > input[type="search"]::placeholder): |
| (body.window-inactive .toolbar .search-bar > input[type="search"]::-webkit-search-results-button): |
| (.toolbar .dashboard-container): |
| (body .toolbar): Deleted. |
| (body.legacy-mac .toolbar .item.button,): Deleted. |
| (body.legacy-mac .toolbar .search-bar > input[type="search"]): Deleted. |
| (body.legacy-mac .toolbar .search-bar > input[type="search"]:focus): Deleted. |
| (body.legacy-mac .toolbar .item.button:active): Deleted. |
| (body.window-inactive.legacy-mac .toolbar .item.button,): Deleted. |
| (body.latest-mac .toolbar .item.button,): Deleted. |
| (body.latest-mac .toolbar .search-bar > input[type="search"]): Deleted. |
| (body.latest-mac .toolbar .search-bar > input[type="search"]:focus): Deleted. |
| (body.latest-mac .toolbar .item.button:active): Deleted. |
| (body.latest-mac.window-inactive .toolbar .item.button,): Deleted. |
| (body.latest-mac .toolbar .search-bar > input[type="search"]::placeholder): Deleted. |
| (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::placeholder): Deleted. |
| (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::-webkit-search-results-button): Deleted. |
| (body.latest-mac .toolbar .dashboard-container): Deleted. |
| |
| 2019-06-20 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: rename shadowRootPushed parameter to match protocol |
| https://bugs.webkit.org/show_bug.cgi?id=199098 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Protocol/DOMObserver.js: |
| (WI.DOMObserver.prototype.shadowRootPushed): |
| |
| 2019-06-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Error "null is not an object (evaluating 'syntaxTree.containersOfPosition')" when setting a breakpoint |
| https://bugs.webkit.org/show_bug.cgi?id=199082 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange): |
| The script syntax tree may be fetched even if the resource hasn't finished parsing (or had |
| a syntax error), so it's possible for it to be `null`. |
| |
| 2019-06-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Dark Mode: inactive tab bar item should get darker on hover |
| https://bugs.webkit.org/show_bug.cgi?id=199022 |
| |
| Reviewed by Darin Adler. |
| |
| * UserInterface/Views/TabBar.css: |
| (.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover): |
| (@media not (prefers-color-scheme: dark) .tab-bar:not(.animating) > .item:not(.selected, .disabled):hover > .icon): |
| (@media (prefers-color-scheme: dark) .tab-bar): |
| (@media (prefers-color-scheme: dark) .tab-bar > .item): |
| (@media (prefers-color-scheme: dark) .tab-bar > .item:not(.disabled).selected): |
| (@media (prefers-color-scheme: dark) .tab-bar:not(.animating) > .item:not(.selected):hover): |
| (@media (prefers-color-scheme: dark) body.window-inactive .tab-bar): |
| (@media (prefers-color-scheme: dark) body.window-inactive .tab-bar > .item): |
| (@media (prefers-color-scheme: dark) body.window-inactive .tab-bar > .item.selected): |
| |
| * UserInterface/Views/Toolbar.css: |
| (@media (prefers-color-scheme: dark) body .toolbar): |
| |
| 2019-06-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: setting a breakpoint on a non-JavaScript line should immediately show as unresolved |
| https://bugs.webkit.org/show_bug.cgi?id=199033 |
| |
| Reviewed by Matt Baker. |
| |
| Remove the `shouldSpeculativelyResolve` parameter, as it was resolving breakpoints even in |
| the case that there were no resolved locations for the given breakpoint. |
| |
| In the case that there are resolved locations, the breakpoint would've already been resolved |
| by the time that `shouldSpeculativelyResolve` would've taken effect, so it's unnecessary. |
| |
| This parameter was only used when setting a breakpoint from a `SourceCodeTextEditor` gutter. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager.prototype.addBreakpoint): |
| (WI.DebuggerManager.prototype._setBreakpoint): |
| (WI.DebuggerManager.prototype._setBreakpoint.didSetBreakpoint): |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.textEditorBreakpointAdded): |
| |
| 2019-06-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Edit -> Tag doesn't do anything for html, head, and body elements |
| https://bugs.webkit.org/show_bug.cgi?id=199052 |
| <rdar://problem/51923906> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype.populateDOMNodeContextMenu): |
| - Don't show an "Edit > Tag" for <html>, <head>, and <body> nodes |
| - Disable any "Edit" submenu item if it's target is already being edited |
| - Prevent "Add" submenu items from being shown for text nodes |
| |
| 2019-06-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: Debugger: current call frame indicator isn't vertically centered |
| https://bugs.webkit.org/show_bug.cgi?id=199015 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/CallFrameTreeElement.css: |
| (.tree-outline .item.call-frame .status): |
| |
| 2019-06-19 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| REGRESSION(r240946): Web Inspector: Styles: Pasting multiple properties has issues |
| https://bugs.webkit.org/show_bug.cgi?id=198505 |
| <rdar://problem/51374780> |
| |
| Reviewed by Matt Baker. |
| |
| Since r240946, setting WI.CSSStyleDeclaration.prototype.text updates the text immediately. |
| When WI.CSSStyleDeclaration.prototype.update gets called after setting text, it exits early |
| without firing WI.CSSStyleDeclaration.Event.PropertiesChanged. |
| |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration): |
| (WI.CSSStyleDeclaration.prototype.set text): |
| |
| 2019-06-19 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Remove unused _pendingFilter from NetworkTableContentView |
| https://bugs.webkit.org/show_bug.cgi?id=199026 |
| |
| Reviewed by Devin Rousso. |
| |
| This flag is no longer set as of https://trac.webkit.org/changeset/225895. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.prototype._processPendingEntries): |
| |
| 2019-06-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'sourceCodePosition.lineNumber') |
| https://bugs.webkit.org/show_bug.cgi?id=199019 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Main.js: |
| (WI.linkifyLocation): |
| |
| 2019-06-19 Zhifei Fang <zhifei_fang@apple.com> |
| |
| Correct the error object link color in dark mode. |
| https://bugs.webkit.org/show_bug.cgi?id=198033 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ErrorObjectView.css: |
| (@media (prefers-dark-interface)): |
| (.error-object-link-container): |
| |
| 2019-06-18 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Network: detail view shouldn't stay open when the related entry is removed |
| https://bugs.webkit.org/show_bug.cgi?id=198951 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._mainResourceDidChange): |
| Hide the detail view if the main resource changes and we aren't preserving the log. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype.reloadVisibleColumnCells): |
| Only attempt to populate cells for rows that the `_dataSource` actually has. Without this, |
| the `_delegate` may be asked to populate a cell for a row it doesn't have, which would error. |
| |
| 2019-06-18 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: parseQueryParameters fails to successfully parse query parameter values that contain "=" |
| https://bugs.webkit.org/show_bug.cgi?id=198971 |
| <rdar://problem/51852782> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/URLUtilities.js: |
| (parseQueryString): |
| |
| 2019-06-18 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: Heap: subsequent snapshots taken manually don't appear in the list |
| https://bugs.webkit.org/show_bug.cgi?id=198941 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Since heap snapshot records can be added at any time, including when not actively recording, |
| when the "Entire Recording" range is selected, make sure to set the `filterEndTime` to be an |
| effectively infinite number so that records added later aren't filtered out. |
| |
| This isn't done for other timeline views as they may have graphs that don't expect to render |
| from time 0 till infinity, not to mention being unable to add records when not recording. |
| |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView.prototype._updateTimelineViewTimes): |
| |
| 2019-06-18 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: Canvas: cannot select saved recordings |
| https://bugs.webkit.org/show_bug.cgi?id=198953 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.treeElementToggled): |
| Don't early return if the `TreeElement` isn't `selectable` as the owner `TreeOutline` may |
| want to dispatch an event that it was clicked. |
| |
| 2019-06-18 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: the initial state should be selected when processing a new/imported recording if the navigation sidebar is collapsed |
| https://bugs.webkit.org/show_bug.cgi?id=198952 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Prevent any content from being generated until `initialLayout` is called, as otherwise it's |
| possible for the `CanvasNavigationSidebar` to update the current action index before the |
| preview element has been created, which would throw an error. |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView.prototype.updateActionIndex): |
| (WI.RecordingContentView.prototype.initialLayout): |
| (WI.RecordingContentView.prototype._updateSliderValue): |
| (WI.RecordingContentView.prototype._handleRecordingProcessedAction): |
| Drive-by: update the slider max each time the selected action index is changed. |
| |
| 2019-06-18 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: imported recordings aren't selectable from the overview if there are no canvases in the page |
| https://bugs.webkit.org/show_bug.cgi?id=198955 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView.prototype._addSavedRecording): |
| Hide the content placeholder when a recording is imported. It won't be shown again because |
| the `subviews` list will never be empty, as there's no way to remove an imported recording. |
| |
| * UserInterface/Views/CollectionContentView.js: |
| (WI.CollectionContentView.prototype.addContentViewForItem): |
| (WI.CollectionContentView.prototype.removeContentViewForItem): |
| (WI.CollectionContentView.prototype.showContentPlaceholder): Added. |
| (WI.CollectionContentView.prototype.hideContentPlaceholder): Added. |
| (WI.CollectionContentView.prototype.initialLayout): |
| (WI.CollectionContentView.prototype._selectItem): |
| (WI.CollectionContentView.prototype._showContentPlaceholder): Deleted. |
| (WI.CollectionContentView.prototype._hideContentPlaceholder): Deleted. |
| Make `showContentPlaceholder`/`hideContentPlaceholder` protected for any subclasses to call. |
| |
| 2019-06-17 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Elements: remove ellipses from "Break on" context menu item title |
| https://bugs.webkit.org/show_bug.cgi?id=198944 |
| |
| Reviewed by Devin Rousso. |
| |
| Update context menu title to comply with Apple HI guidelines. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Views/ContextMenuUtilities.js: |
| |
| 2019-06-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: adding a DOM/Event/URL breakpoint should enable breakpoints |
| https://bugs.webkit.org/show_bug.cgi?id=198932 |
| |
| Reviewed by Matt Baker. |
| |
| Match the behavior of JavaScript breakpoints, which enable breakpoints globally when a new |
| breakpoint is set or an existing breakpoint is enabled. |
| |
| This avoids the situation where setting a DOM breakpoint or a specific event listener |
| breakpoint appears to not "work" because breakpoints are globally disabled. There is no |
| "breakpoints disabled" banner in the Elements tab, so the user could be completely unaware |
| of this, and therefore be confused as to why these breakpoints aren't being hit. |
| |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager.prototype._updateEventBreakpoint): |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager.prototype._updateDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype._updateEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype._updateURLBreakpoint): |
| |
| 2019-06-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: remove extra space above Breakpoints section when breakpoints are disabled |
| https://bugs.webkit.org/show_bug.cgi?id=198933 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.css: |
| (.sidebar > .panel.navigation.debugger .warning-banner): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.sources > .content > .warning-banner): |
| |
| 2019-06-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Settings: split the General panel into sub panels so it's less crowded |
| https://bugs.webkit.org/show_bug.cgi?id=198803 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype.initialLayout): |
| (WI.SettingsTabContentView.prototype._createGeneralSettingsView): |
| Many of the settings in General only affect a specific part of Web Inspector, and therefore |
| aren't really "general". |
| |
| (WI.SettingsTabContentView.prototype._createElementsSettingsView): Added. |
| - Element Selection |
| - CSS Changes |
| |
| (WI.SettingsTabContentView.prototype._createSourcesSettingsView): Added. |
| - Debugger |
| - Source Maps |
| |
| (WI.SettingsTabContentView.prototype._createConsoleSettingsView): Added. |
| - Traces (renamed from "Console") |
| - WebRTC Logging |
| - Media Logging |
| - MSE Logging |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-06-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: the Inspector Style Sheet is missing when grouped by path |
| https://bugs.webkit.org/show_bug.cgi?id=198860 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager.prototype.get styleSheets): |
| (WI.CSSManager.prototype.inspectorStyleSheetsForFrame): |
| (WI.CSSManager.prototype.preferredInspectorStyleSheetForFrame): |
| (WI.CSSManager.prototype._inspectorStyleSheetsForFrame): Deleted. |
| Expose a way to fetch all inspector stylesheets for a given frame. |
| Make sure to associate inspector stylesheets with their frame. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel.prototype._compareTreeElements): |
| (WI.SourcesNavigationSidebarPanel.prototype._addResourcesRecursivelyForFrame): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleCSSStyleSheetAdded): |
| Add paths for inspector stylesheet creation/fetching when grouping by path. |
| Sort inspector stylesheets as the first item of an origin/frame when grouping by path. |
| |
| 2019-06-17 Jamal Nasser <jamaln@mail.com> |
| |
| Web Inspector: Go To Line dialog is white when in Dark Mode |
| https://bugs.webkit.org/show_bug.cgi?id=198596 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/GoToLineDialog.css: |
| (@media (prefers-color-scheme: dark)): |
| (.go-to-line-dialog): |
| (.go-to-line-dialog > div > input): |
| (.go-to-line-dialog > div > input::placeholder): |
| (.go-to-line-dialog > div::before): |
| |
| 2019-06-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: searching doesn't use the case sensitive or regex global settings |
| https://bugs.webkit.org/show_bug.cgi?id=198897 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.customPerformSearch): |
| |
| 2019-06-13 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r246178): extra spaces added in at-rules when formatting CSS |
| https://bugs.webkit.org/show_bug.cgi?id=198806 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Workers/Formatter/CSSFormatter.js: |
| (CSSFormatter.prototype._format): |
| Add more specific tests for at-rules, and add/remove whitespace depending on the type of |
| at-rule (e.g. `@supports` vs `@media`), as well as where the scanner is in the parameters of |
| the at at-rule (e.g. `@supports |` vs `@media (|`). |
| |
| * UserInterface/Workers/Formatter/FormatterContentBuilder.js: |
| (FormatterContentBuilder): |
| (FormatterContentBuilder.prototype.get lastToken): Added. |
| (FormatterContentBuilder.prototype.get currentLine): |
| (FormatterContentBuilder.prototype.removeLastNewline): |
| (FormatterContentBuilder.prototype.removeLastWhitespace): |
| (FormatterContentBuilder.prototype._popFormattedContent): |
| (FormatterContentBuilder.prototype._append): |
| Update `lastTokenWasNewline` and `lastTokenWasWhitespace` when removing newlines/whitespace. |
| Memoize the `currentLine` so it's less expensive to re-fetch. |
| |
| 2019-06-13 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Settings: indent type and size settings aren't respected everywhere |
| https://bugs.webkit.org/show_bug.cgi?id=198804 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/CodeMirrorEditor.js: |
| (WI.CodeMirrorEditor.create): |
| When creating a `CodeMirror` instance, default to using the global `Setting`s as the options. |
| If an override is specified in `options`, it will take precedence and the `CodeMirror` will |
| ignore any changes to the `Setting` as well. |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor): |
| (WI.TextEditor.prototype.close): Deleted. |
| |
| * UserInterface/Views/AuditTestCaseContentView.js: |
| (WI.AuditTestCaseContentView.prototype.layout): |
| * UserInterface/Views/BreakpointActionView.js: |
| (WI.BreakpointActionView.prototype._updateBody): |
| * UserInterface/Views/ConsolePrompt.js: |
| (WI.ConsolePrompt): |
| * UserInterface/Views/ScopeChainDetailsSidebarPanel.js: |
| (WI.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked): |
| Remove overrides that aren't necessary for `CodeMirror` to fit in the container element: |
| - `showWhitespaceCharacters` |
| - `indentWithTabs` |
| - `indentUnit` |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.close): |
| * UserInterface/Views/ShaderProgramContentView.js: |
| (WI.ShaderProgramContentView.prototype.closed): Deleted. |
| * UserInterface/Views/TextContentView.js: |
| (WI.TextContentView.prototype.closed): Deleted. |
| * UserInterface/Views/TextResourceContentView.js: |
| (WI.TextResourceContentView.prototype.closed): |
| Delete the logic for removing event listeners from global `Setting`, as it didn't work |
| anyways, since none of the event listeners were added using a `thisObject`. |
| |
| 2019-06-13 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Settings: sticky header disappears when over scrolling |
| https://bugs.webkit.org/show_bug.cgi?id=198833 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SettingsTabContentView.css: |
| (.content-view.settings .navigation-bar): |
| (.content-view.settings > .settings-view): Added. |
| (.content-view.settings): Deleted. |
| |
| 2019-06-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: imported recordings do not have JavaScript call trees |
| https://bugs.webkit.org/show_bug.cgi?id=197490 |
| <rdar://problem/50589158> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/TimelineRecording.js: |
| (WI.TimelineRecording.prototype.initializeCallingContextTrees): |
| Make sure to actually save the provided stack traces and samples in the export data. |
| |
| * UserInterface/Models/ScriptTimelineRecord.js: |
| (WI.ScriptTimelineRecord.fromJSON): |
| (WI.ScriptTimelineRecord.prototype.toJSON): |
| Drive-by: include `extraDetails`, which contains useful information like "default prevented". |
| |
| 2019-06-10 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| REGRESSION(r244268): Web Inspector: Styles: navigating from Computed to Styles doesn't work |
| https://bugs.webkit.org/show_bug.cgi?id=198508 |
| <rdar://problem/51375503> |
| |
| Reviewed by Matt Baker. |
| |
| It didn't work because the detached sidebar panel tried to access its parent view (this.parentSidebar). |
| |
| * UserInterface/Views/ComputedStyleDetailsSidebarPanel.js: |
| (WI.ComputedStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty): Added. |
| (WI.ComputedStyleDetailsSidebarPanel): |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: |
| (WI.GeneralStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty): Deleted. |
| Move computedStyleDetailsPanelShowProperty to ComputedStyleDetailsSidebarPanel since it's the only |
| panel where it's needed. |
| |
| 2019-06-10 Alexey Shvayka <shvaikalesh@gmail.com> |
| |
| Web Inspector: "Copy Path to Property" doesn't work with multiline keys |
| https://bugs.webkit.org/show_bug.cgi?id=198691 |
| |
| Reviewed by Matt Baker. |
| |
| Correctly escape line terminators to prevent doubleQuotedString from returning malformed strings. |
| |
| * UserInterface/Base/Utilities.js: Use JSON.stringify. |
| |
| 2019-06-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r246025): prototypes in object previews are visible even when setting `showOnlyJSON` |
| https://bugs.webkit.org/show_bug.cgi?id=198721 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ObjectTreeView.css: |
| (.object-tree.properties-only.json-only .object-tree-property.prototype-property): Added. |
| (.object-tree.properties-only.json-only .object-tree-property .prototype-property): Deleted. |
| |
| 2019-06-07 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: longhand CSS properties overridden by shorthands miss strikethrough |
| https://bugs.webkit.org/show_bug.cgi?id=198629 |
| <rdar://problem/51504160> |
| |
| Reviewed by Devin Rousso. |
| |
| Longhand CSS properties (e.g. "font-size") overriden by shorthands (e.g. "font") now have strikethroughs. |
| |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype.set overridingProperty): |
| (WI.CSSProperty): |
| |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype._updateStyleCascade): |
| Call _associateRelatedProperties before _markOverriddenProperties because |
| _associateRelatedProperties sets relatedShorthandProperty property, which |
| is now used by _markOverriddenProperties. |
| |
| (WI.DOMNodeStyles.prototype._markOverriddenProperties.isOverriddenBy): |
| (WI.DOMNodeStyles.prototype._markOverriddenProperties): |
| |
| 2019-06-06 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: remove always disabled details sidebar navigation item |
| https://bugs.webkit.org/show_bug.cgi?id=198393 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView): |
| |
| 2019-06-06 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r245833): Timelines: CPU: JavaScript label is missing and JavaScript section of pie chart is black |
| https://bugs.webkit.org/show_bug.cgi?id=198627 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.displayNameForSampleType): |
| * UserInterface/Views/CPUTimelineView.css: |
| (.timeline-view.cpu > .content > .overview .legend > .row > .swatch.sample-type-javascript): |
| (.timeline-view.cpu .circle-chart > svg > path.segment.sample-type-javascript): Added. |
| (.timeline-view.cpu .circle-chart > svg > path.segment.sample-type-script): Deleted. |
| * UserInterface/Views/CPUUsageCombinedView.css: |
| (.cpu-usage-combined-view > .graph > .range-chart .sample-type-javascript): Added. |
| (.cpu-usage-combined-view > .graph > .range-chart .sample-type-script): Deleted. |
| Use the enum string added in r245833 (`sample-type-javascript`) instead of what was there |
| before (`sample-type-script`). |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| Rename `--cpu-script-*` to `--cpu-javascript-*`. |
| |
| 2019-06-06 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Formatter: pretty-print CSS using a Worker |
| https://bugs.webkit.org/show_bug.cgi?id=197829 |
| <rdar://problem/36891532> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Proxies/FormatterWorkerProxy.js: |
| (WI.FormatterWorkerProxy.prototype.formatCSS): Added. |
| * UserInterface/Workers/Formatter/FormatterWorker.js: |
| (FormatterWorker.prototype.formatCSS): Added. |
| * UserInterface/Workers/Formatter/CSSFormatter.js: Added. |
| (CSSFormatter): |
| (CSSFormatter.prototype.get success): |
| (CSSFormatter.prototype.get formattedText): |
| (CSSFormatter.prototype.get sourceMapData): |
| (CSSFormatter.prototype._format): |
| |
| * UserInterface/Workers/Formatter/FormatterContentBuilder.js: |
| (FormatterContentBuilder.prototype.get currentLine): Added. |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype._canUseFormatterWorker): |
| (WI.TextEditor.prototype._startWorkerPrettyPrint): |
| |
| * .eslintrc: |
| |
| 2019-06-06 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: print/rulers/compositing/paint navigation items shouldn't be visible if the inspected target doesn't have a PageAgent |
| https://bugs.webkit.org/show_bug.cgi?id=198410 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView): |
| (WI.DOMTreeContentView.prototype.get navigationItems): |
| (WI.DOMTreeContentView.prototype._showRulersChanged): |
| |
| == Rolled over to ChangeLog-2019-06-05 == |