Title: [264045] trunk/Source/WebInspectorUI
- Revision
- 264045
- Author
- [email protected]
- Date
- 2020-07-07 15:34:40 -0700 (Tue, 07 Jul 2020)
Log Message
Web Inspector: Canvas: show an error message if unable to fetch shader source
https://bugs.webkit.org/show_bug.cgi?id=213661
Reviewed by Brian Burg.
* UserInterface/Views/ShaderProgramContentView.js:
(WI.ShaderProgramContentView):
(WI.ShaderProgramContentView.prototype._refreshContent):
* UserInterface/Views/ShaderProgramContentView.css:
(.content-view.shader-program > .spinner-container): Added.
(.content-view.shader-program > .spinner-container > .indeterminate-progress-spinner): Added.
Modified Paths
Diff
Modified: trunk/Source/WebInspectorUI/ChangeLog (264044 => 264045)
--- trunk/Source/WebInspectorUI/ChangeLog 2020-07-07 22:33:59 UTC (rev 264044)
+++ trunk/Source/WebInspectorUI/ChangeLog 2020-07-07 22:34:40 UTC (rev 264045)
@@ -1,3 +1,17 @@
+2020-07-07 Devin Rousso <[email protected]>
+
+ Web Inspector: Canvas: show an error message if unable to fetch shader source
+ https://bugs.webkit.org/show_bug.cgi?id=213661
+
+ Reviewed by Brian Burg.
+
+ * UserInterface/Views/ShaderProgramContentView.js:
+ (WI.ShaderProgramContentView):
+ (WI.ShaderProgramContentView.prototype._refreshContent):
+ * UserInterface/Views/ShaderProgramContentView.css:
+ (.content-view.shader-program > .spinner-container): Added.
+ (.content-view.shader-program > .spinner-container > .indeterminate-progress-spinner): Added.
+
2020-07-03 Sam Weinig <[email protected]>
Add "-Wliteral-conversion" warning to Xcode based builds and fix the issues it finds
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.css (264044 => 264045)
--- trunk/Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.css 2020-07-07 22:33:59 UTC (rev 264044)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.css 2020-07-07 22:34:40 UTC (rev 264045)
@@ -59,6 +59,23 @@
border-bottom: 1px solid lightgrey;
}
+.content-view.shader-program > .spinner-container {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background-color: var(--background-color-content);
+}
+
+.content-view.shader-program > .spinner-container > .indeterminate-progress-spinner {
+ width: 32px;
+ height: 32px;
+}
+
@media (prefers-color-scheme: dark) {
.content-view.shader-program > .shader > header > .shader-type {
background-color: var(--background-color);
Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.js (264044 => 264045)
--- trunk/Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.js 2020-07-07 22:33:59 UTC (rev 264044)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.js 2020-07-07 22:34:40 UTC (rev 264045)
@@ -85,14 +85,12 @@
container.classList.add("shader", shaderType);
container.classList.toggle("shares-vertex-fragment-shader", sharesVertexFragmentShader);
- return {container, textEditor};
+ return textEditor;
};
switch (this.representedObject.programType) {
case WI.ShaderProgram.ProgramType.Compute: {
- let computeEditor = createEditor(WI.ShaderProgram.ShaderType.Compute);
- this._computeContainer = computeEditor.container;
- this._computeEditor = computeEditor.textEditor;
+ this._computeEditor = createEditor(WI.ShaderProgram.ShaderType.Compute);
this._lastActiveEditor = this._computeEditor;
break;
@@ -99,14 +97,10 @@
}
case WI.ShaderProgram.ProgramType.Render: {
- let vertexEditor = createEditor(WI.ShaderProgram.ShaderType.Vertex);
- this._vertexContainer = vertexEditor.container;
- this._vertexEditor = vertexEditor.textEditor;
+ this._vertexEditor = createEditor(WI.ShaderProgram.ShaderType.Vertex);
if (!sharesVertexFragmentShader) {
- let fragmentEditor = createEditor(WI.ShaderProgram.ShaderType.Fragment);
- this._fragmentContainer = fragmentEditor.container;
- this._fragmentEditor = fragmentEditor.textEditor;
+ this._fragmentEditor = createEditor(WI.ShaderProgram.ShaderType.Fragment);
}
this._lastActiveEditor = this._vertexEditor;
@@ -254,26 +248,30 @@
_refreshContent()
{
- let createCallback = (container, textEditor) => {
+ let spinnerContainer = null;
+
+ if (!this.didInitialLayout) {
+ spinnerContainer = this.element.appendChild(document.createElement("div"));
+ spinnerContainer.className = "spinner-container";
+ spinnerContainer.appendChild((new WI.IndeterminateProgressSpinner).element);
+
+ this._contentErrorMessageElement?.remove();
+ }
+
+ let createCallback = (textEditor) => {
return (source) => {
+ spinnerContainer?.remove();
+
if (source === null) {
- container.remove();
+ if (!this._contentErrorMessageElement) {
+ const isError = true;
+ this._contentErrorMessageElement = WI.createMessageTextView(WI.UIString("An error occurred trying to load the resource."), isError);
+ }
+ if (!this._contentErrorMessageElement.parentNode)
+ this.element.appendChild(this._contentErrorMessageElement);
return;
}
- if (!container.parentNode) {
- switch (container) {
- case this._computeContainer:
- case this._vertexContainer:
- this.element.insertAdjacentElement("afterbegin", container);
- break;
-
- case this._fragmentContainer:
- this.element.insertAdjacentElement("beforeend", container);
- break;
- }
- }
-
textEditor.string = source || "";
};
};
@@ -280,13 +278,13 @@
switch (this.representedObject.programType) {
case WI.ShaderProgram.ProgramType.Compute:
- this.representedObject.requestShaderSource(WI.ShaderProgram.ShaderType.Compute, createCallback(this._computeContainer, this._computeEditor));
+ this.representedObject.requestShaderSource(WI.ShaderProgram.ShaderType.Compute, createCallback(this._computeEditor));
return;
case WI.ShaderProgram.ProgramType.Render:
- this.representedObject.requestShaderSource(WI.ShaderProgram.ShaderType.Vertex, createCallback(this._vertexContainer, this._vertexEditor));
+ this.representedObject.requestShaderSource(WI.ShaderProgram.ShaderType.Vertex, createCallback(this._vertexEditor));
if (!this.representedObject.sharesVertexFragmentShader)
- this.representedObject.requestShaderSource(WI.ShaderProgram.ShaderType.Fragment, createCallback(this._fragmentContainer, this._fragmentEditor));
+ this.representedObject.requestShaderSource(WI.ShaderProgram.ShaderType.Fragment, createCallback(this._fragmentEditor));
return;
}
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes