Title: [284963] branches/safari-612-branch
Revision
284963
Author
[email protected]
Date
2021-10-27 15:47:37 -0700 (Wed, 27 Oct 2021)

Log Message

Cherry-pick r282984. rdar://problem/77587429

This reverts commit r284907.

Modified Paths

Added Paths

Diff

Modified: branches/safari-612-branch/LayoutTests/ChangeLog (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/ChangeLog	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/ChangeLog	2021-10-27 22:47:37 UTC (rev 284963)
@@ -738,6 +738,77 @@
             * intersection-observer/observe-disconnected-target-expected.txt: Added.
             * intersection-observer/observe-disconnected-target.html: Added.
 
+2021-10-25  Null  <[email protected]>
+
+        Cherry-pick r282984. rdar://problem/77587429
+
+    Web Inspector: Graphics: add instrumentation for new `CanvasRenderingContext2DSettings`
+    https://bugs.webkit.org/show_bug.cgi?id=225180
+    <rdar://problem/77587429>
+    
+    Reviewed by BJ Burg.
+    
+    Source/_javascript_Core:
+    
+    * inspector/protocol/Canvas.json:
+    Add `colorSpace` and `desynchronized` to `Canvas.ContextAttributes`.
+    
+    Source/WebCore:
+    
+    * inspector/InspectorCanvas.cpp:
+    (WebCore::buildObjectForCanvasContextAttributes): Added.
+    (WebCore::InspectorCanvas::buildObjectForCanvas):
+    (WebCore::InspectorCanvas::buildInitialState):
+    Unify the two cases where we fetch canvas attributes into a single method so that both get
+    the same data. This means that the canvas recorder now also uses `Canvas.ContextAttributes`.
+    
+    LayoutTests:
+    
+    * inspector/canvas/context-attributes-expected.txt:
+    * inspector/canvas/recording-2d-frameCount-expected.txt:
+    * inspector/canvas/recording-2d-full-expected.txt:
+    * inspector/canvas/recording-2d-memoryLimit-expected.txt:
+    * inspector/canvas/recording-bitmaprenderer-frameCount-expected.txt:
+    * inspector/canvas/recording-bitmaprenderer-full-expected.txt:
+    * inspector/canvas/recording-bitmaprenderer-memoryLimit-expected.txt:
+    * inspector/canvas/recording-html-2d-expected.txt:
+    * inspector/canvas/recording-webgl-frameCount-expected.txt:
+    * inspector/canvas/recording-webgl-full-expected.txt:
+    * inspector/canvas/recording-webgl-memoryLimit-expected.txt:
+    * inspector/canvas/recording-webgl-snapshots-expected.txt:
+    * inspector/canvas/recording-webgl2-frameCount-expected.txt:
+    * inspector/canvas/recording-webgl2-full-expected.txt:
+    * inspector/canvas/recording-webgl2-memoryLimit-expected.txt:
+    * inspector/canvas/recording-webgl2-snapshots-expected.txt:
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282984 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-09-23  Devin Rousso  <[email protected]>
+
+            Web Inspector: Graphics: add instrumentation for new `CanvasRenderingContext2DSettings`
+            https://bugs.webkit.org/show_bug.cgi?id=225180
+            <rdar://problem/77587429>
+
+            Reviewed by BJ Burg.
+
+            * inspector/canvas/context-attributes-expected.txt:
+            * inspector/canvas/recording-2d-frameCount-expected.txt:
+            * inspector/canvas/recording-2d-full-expected.txt:
+            * inspector/canvas/recording-2d-memoryLimit-expected.txt:
+            * inspector/canvas/recording-bitmaprenderer-frameCount-expected.txt:
+            * inspector/canvas/recording-bitmaprenderer-full-expected.txt:
+            * inspector/canvas/recording-bitmaprenderer-memoryLimit-expected.txt:
+            * inspector/canvas/recording-html-2d-expected.txt:
+            * inspector/canvas/recording-webgl-frameCount-expected.txt:
+            * inspector/canvas/recording-webgl-full-expected.txt:
+            * inspector/canvas/recording-webgl-memoryLimit-expected.txt:
+            * inspector/canvas/recording-webgl-snapshots-expected.txt:
+            * inspector/canvas/recording-webgl2-frameCount-expected.txt:
+            * inspector/canvas/recording-webgl2-full-expected.txt:
+            * inspector/canvas/recording-webgl2-memoryLimit-expected.txt:
+            * inspector/canvas/recording-webgl2-snapshots-expected.txt:
+
 2021-10-22  Alan Coon  <[email protected]>
 
         Cherry-pick r283952. rdar://problem/84558050

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/context-attributes-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/context-attributes-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/context-attributes-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -5,7 +5,10 @@
 -- Running test case: Create2DCanvasContext
 Added canvas.
 PASS: Canvas context should be "2D".
-{}
+{
+  "colorSpace": "srgb",
+  "desynchronized": false
+}
 
 -- Running test case: CreateBitmapRendererCanvasContext
 Added canvas.

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-2d-frameCount-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-2d-frameCount-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-2d-frameCount-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -31,6 +31,7 @@
     imageSmoothingQuality: "low"
     setPath: [""]
   parameters:
+    0: {"colorSpace":"srgb","desynchronized":false}
   content: <filtered>
 frames:
   0: (duration)

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-2d-full-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-2d-full-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-2d-full-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -31,6 +31,7 @@
     imageSmoothingQuality: "low"
     setPath: [""]
   parameters:
+    0: {"colorSpace":"srgb","desynchronized":false}
   content: <filtered>
 frames:
   0: (duration)

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-2d-memoryLimit-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-2d-memoryLimit-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-2d-memoryLimit-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -31,6 +31,7 @@
     imageSmoothingQuality: "low"
     setPath: [""]
   parameters:
+    0: {"colorSpace":"srgb","desynchronized":false}
   content: <filtered>
 frames:
   0: (duration) (incomplete)

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-bitmaprenderer-frameCount-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-bitmaprenderer-frameCount-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-bitmaprenderer-frameCount-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -8,6 +8,7 @@
     width: 2
     height: 2
   parameters:
+    0: {"alpha":true}
   content: <filtered>
 frames:
   0: (duration)

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-bitmaprenderer-full-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-bitmaprenderer-full-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-bitmaprenderer-full-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -8,6 +8,7 @@
     width: 2
     height: 2
   parameters:
+    0: {"alpha":true}
   content: <filtered>
 frames:
   0: (duration)

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-bitmaprenderer-memoryLimit-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-bitmaprenderer-memoryLimit-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-bitmaprenderer-memoryLimit-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -8,6 +8,7 @@
     width: 2
     height: 2
   parameters:
+    0: {"alpha":true}
   content: <filtered>
 frames:
   0: (duration) (incomplete)

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-html-2d-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-html-2d-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-html-2d-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -29,11 +29,11 @@
 canvas.width = 2;
 canvas.height = 2;
 
-let context = canvas.getContext("2d");
+let context = canvas.getContext("2d", objects[0]);
 
 let frames = [
     function initialState() {
-        context.drawImage(objects[0], 0, 0);
+        context.drawImage(objects[1], 0, 0);
 
         context.direction = "ltr";
         context.fillStyle = "#000000";
@@ -60,7 +60,7 @@
         context.webkitLineDash = [];
         context.webkitLineDashOffset = 0;
         if ("setPath" in context)
-            context.setPath(objects[1]);
+            context.setPath(objects[2]);
         context.save();
 
         context.direction = "ltr";
@@ -88,7 +88,7 @@
         context.webkitLineDash = [];
         context.webkitLineDashOffset = 0;
         if ("setPath" in context)
-            context.setPath(objects[2]);
+            context.setPath(objects[3]);
         context.save();
 
         context.direction = "ltr";
@@ -116,7 +116,7 @@
         context.webkitLineDash = [];
         context.webkitLineDashOffset = 0;
         if ("setPath" in context)
-            context.setPath(objects[3]);
+            context.setPath(objects[4]);
     },
     function startRecording() {
         if (typeof console.record === "function")
@@ -125,10 +125,10 @@
     function frame1() {
         context.fillStyle;
         context.fillStyle = "test";
-        context.fillStyle = objects[4];
         context.fillStyle = objects[5];
         context.fillStyle = objects[6];
         context.fillStyle = objects[7];
+        context.fillStyle = objects[8];
     },
     function frame2() {
         context.beginPath();
@@ -137,19 +137,19 @@
         context.moveTo(1, 2);
     },
     function frame4() {
-        context.drawImage(objects[8], 11, 12);
+        context.drawImage(objects[9], 11, 12);
     },
     function frame5() {
-        context.createImageData(objects[9]);
+        context.createImageData(objects[10]);
     },
     function frame6() {
-        context.drawImage(objects[10], 11, 12);
+        context.drawImage(objects[11], 11, 12);
     },
     function frame7() {
-        context.setTransform(objects[11]);
+        context.setTransform(objects[12]);
     },
     function frame8() {
-        // context.drawFocusIfNeeded(objects[12], "Element");
+        // context.drawFocusIfNeeded(objects[13], "Element");
     },
     function stopRecording() {
         if (typeof console.recordEnd === "function")
@@ -217,19 +217,19 @@
     objects[key] = new Path2D(data);
 }
 
-rebuildImage(0, <filtered>);
-rebuildPath2D(1, "");
+rebuildImage(1, <filtered>);
 rebuildPath2D(2, "");
 rebuildPath2D(3, "");
-rebuildCanvasGradient(4, {"type":"linear-gradient","points":[1,2,3,4],"stops":[{"offset":1,"color":"rgb(255, 0, 0)"},{"offset":1,"color":"rgb(0, 0, 255)"}]});
-rebuildCanvasGradient(5, {"type":"radial-gradient","points":[1,2,3,4,5,6],"stops":[]});
-rebuildCanvasGradient(6, {"type":"conic-gradient","points":[2,3,1],"stops":[{"offset":1,"color":"rgb(0, 128, 0)"}]});
-rebuildCanvasPattern(7, {"image":<filtered>,"repeat":"no-repeat"});
-rebuildImage(8, <filtered>);
-rebuildImageData(9, {"data":[0,0,0,0,0,0,0,0],"width":1,"height":2});
-rebuildImageBitmap(10, <filtered>);
-rebuildDOMMatrix(11, "matrix(1, 2, 3, 4, 5, 6)");
-rebuildPath2D(12, "M1 2");
+rebuildPath2D(4, "");
+rebuildCanvasGradient(5, {"type":"linear-gradient","points":[1,2,3,4],"stops":[{"offset":1,"color":"rgb(255, 0, 0)"},{"offset":1,"color":"rgb(0, 0, 255)"}]});
+rebuildCanvasGradient(6, {"type":"radial-gradient","points":[1,2,3,4,5,6],"stops":[]});
+rebuildCanvasGradient(7, {"type":"conic-gradient","points":[2,3,1],"stops":[{"offset":1,"color":"rgb(0, 128, 0)"}]});
+rebuildCanvasPattern(8, {"image":<filtered>,"repeat":"no-repeat"});
+rebuildImage(9, <filtered>);
+rebuildImageData(10, {"data":[0,0,0,0,0,0,0,0],"width":1,"height":2});
+rebuildImageBitmap(11, <filtered>);
+rebuildDOMMatrix(12, "matrix(1, 2, 3, 4, 5, 6)");
+rebuildPath2D(13, "M1 2");
 
 Promise.all(promises).then(function() {
     window.requestAnimationFrame(function executeFrame() {

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-frameCount-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-frameCount-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-frameCount-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -8,7 +8,7 @@
     width: 2
     height: 2
   parameters:
-    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"failIfMajorPerformanceCaveat":false}
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"default","failIfMajorPerformanceCaveat":false}
   content: <filtered>
 frames:
   0: (duration)

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-full-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-full-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-full-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -8,7 +8,7 @@
     width: 2
     height: 2
   parameters:
-    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"failIfMajorPerformanceCaveat":false}
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"default","failIfMajorPerformanceCaveat":false}
   content: <filtered>
 frames:
   0: (duration)

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-memoryLimit-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-memoryLimit-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-memoryLimit-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -8,7 +8,7 @@
     width: 2
     height: 2
   parameters:
-    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"failIfMajorPerformanceCaveat":false}
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"default","failIfMajorPerformanceCaveat":false}
   content: <filtered>
 frames:
   0: (duration) (incomplete)

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-snapshots-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-snapshots-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-snapshots-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -8,7 +8,7 @@
     width: 300
     height: 150
   parameters:
-    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"failIfMajorPerformanceCaveat":false}
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"default","failIfMajorPerformanceCaveat":false}
   content: <filtered>
 frames:
   0: (duration)

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-frameCount-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-frameCount-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-frameCount-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -8,7 +8,7 @@
     width: 2
     height: 2
   parameters:
-    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"failIfMajorPerformanceCaveat":false}
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"default","failIfMajorPerformanceCaveat":false}
   content: <filtered>
 frames:
   0: (duration)

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-full-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-full-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-full-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -8,7 +8,7 @@
     width: 2
     height: 2
   parameters:
-    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"failIfMajorPerformanceCaveat":false}
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"default","failIfMajorPerformanceCaveat":false}
   content: <filtered>
 frames:
   0: (duration)

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-memoryLimit-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-memoryLimit-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-memoryLimit-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -8,7 +8,7 @@
     width: 2
     height: 2
   parameters:
-    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"failIfMajorPerformanceCaveat":false}
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"default","failIfMajorPerformanceCaveat":false}
   content: <filtered>
 frames:
   0: (duration) (incomplete)

Modified: branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-snapshots-expected.txt (284962 => 284963)


--- branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-snapshots-expected.txt	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-snapshots-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -8,7 +8,7 @@
     width: 300
     height: 150
   parameters:
-    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"failIfMajorPerformanceCaveat":false}
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"default","failIfMajorPerformanceCaveat":false}
   content: <filtered>
 frames:
   0: (duration)

Copied: branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl-frameCount-expected.txt (from rev 284957, branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-frameCount-expected.txt) (0 => 284963)


--- branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl-frameCount-expected.txt	                        (rev 0)
+++ branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl-frameCount-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -0,0 +1,26 @@
+Test that CanvasManager is able to record actions made to WebGL canvas contexts.
+
+
+== Running test suite: Canvas.recordingWebGL
+-- Running test case: Canvas.recordingWebGL.singleFrame
+initialState:
+  attributes:
+    width: 2
+    height: 2
+  parameters:
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"low-power","failIfMajorPerformanceCaveat":false}
+  content: <filtered>
+frames:
+  0: (duration)
+    0: activeTexture(1)
+      swizzleTypes: [Number]
+      trace:
+        0: activeTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+        3: performActions
+        4: Global Code
+        5: evaluateWithScopeExtension
+        6: (anonymous function)
+        7: _wrapCall
+

Copied: branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl-full-expected.txt (from rev 284957, branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-full-expected.txt) (0 => 284963)


--- branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl-full-expected.txt	                        (rev 0)
+++ branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl-full-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -0,0 +1,1001 @@
+Test that CanvasManager is able to record actions made to WebGL canvas contexts.
+
+
+== Running test suite: Canvas.recordingWebGL
+-- Running test case: Canvas.recordingWebGL.multipleFrames
+initialState:
+  attributes:
+    width: 2
+    height: 2
+  parameters:
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"low-power","failIfMajorPerformanceCaveat":false}
+  content: <filtered>
+frames:
+  0: (duration)
+    0: activeTexture(1)
+      swizzleTypes: [Number]
+      trace:
+        0: activeTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+        3: performActions
+        4: Global Code
+        5: evaluateWithScopeExtension
+        6: (anonymous function)
+        7: _wrapCall
+  1: (duration)
+    0: attachShader(0, 0)
+      swizzleTypes: [WebGLProgram, WebGLShader]
+      trace:
+        0: attachShader
+        1: (anonymous function)
+        2: executeFrameFunction
+  2: (duration)
+    0: bindAttribLocation(0, 1, "test")
+      swizzleTypes: [WebGLProgram, Number, String]
+      trace:
+        0: bindAttribLocation
+        1: (anonymous function)
+        2: executeFrameFunction
+  3: (duration)
+    0: bindBuffer(1, 0)
+      swizzleTypes: [Number, WebGLBuffer]
+      trace:
+        0: bindBuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  4: (duration)
+    0: bindFramebuffer(1, 0)
+      swizzleTypes: [Number, WebGLFramebuffer]
+      trace:
+        0: bindFramebuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  5: (duration)
+    0: bindRenderbuffer(1, 0)
+      swizzleTypes: [Number, WebGLRenderbuffer]
+      trace:
+        0: bindRenderbuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  6: (duration)
+    0: bindTexture(1, 0)
+      swizzleTypes: [Number, WebGLTexture]
+      trace:
+        0: bindTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+  7: (duration)
+    0: blendColor(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: blendColor
+        1: (anonymous function)
+        2: executeFrameFunction
+  8: (duration)
+    0: blendEquation(1)
+      swizzleTypes: [Number]
+      trace:
+        0: blendEquation
+        1: (anonymous function)
+        2: executeFrameFunction
+  9: (duration)
+    0: blendEquationSeparate(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: blendEquationSeparate
+        1: (anonymous function)
+        2: executeFrameFunction
+  10: (duration)
+    0: blendFunc(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: blendFunc
+        1: (anonymous function)
+        2: executeFrameFunction
+  11: (duration)
+    0: blendFuncSeparate(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: blendFuncSeparate
+        1: (anonymous function)
+        2: executeFrameFunction
+  12: (duration)
+    0: bufferData(1, 0, 2)
+      swizzleTypes: [Number, TypedArray, Number]
+      trace:
+        0: bufferData
+        1: (anonymous function)
+        2: executeFrameFunction
+    1: bufferData(3, 4, 5)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: bufferData
+        1: (anonymous function)
+        2: executeFrameFunction
+  13: (duration)
+    0: bufferSubData(1, 2, 0)
+      swizzleTypes: [Number, Number, TypedArray]
+      trace:
+        0: bufferSubData
+        1: (anonymous function)
+        2: executeFrameFunction
+  14: (duration)
+    0: checkFramebufferStatus(1)
+      swizzleTypes: [Number]
+      trace:
+        0: checkFramebufferStatus
+        1: (anonymous function)
+        2: executeFrameFunction
+  15: (duration)
+    0: clear(1)
+      swizzleTypes: [Number]
+      trace:
+        0: clear
+        1: (anonymous function)
+        2: executeFrameFunction
+      snapshot: <filtered>
+  16: (duration)
+    0: clearColor(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: clearColor
+        1: (anonymous function)
+        2: executeFrameFunction
+  17: (duration)
+    0: clearDepth(1)
+      swizzleTypes: [Number]
+      trace:
+        0: clearDepth
+        1: (anonymous function)
+        2: executeFrameFunction
+  18: (duration)
+    0: clearStencil(1)
+      swizzleTypes: [Number]
+      trace:
+        0: clearStencil
+        1: (anonymous function)
+        2: executeFrameFunction
+  19: (duration)
+    0: colorMask(true, false, true, false)
+      swizzleTypes: [Boolean, Boolean, Boolean, Boolean]
+      trace:
+        0: colorMask
+        1: (anonymous function)
+        2: executeFrameFunction
+  20: (duration)
+    0: compileShader(0)
+      swizzleTypes: [WebGLShader]
+      trace:
+        0: compileShader
+        1: (anonymous function)
+        2: executeFrameFunction
+  21: (duration)
+    0: compressedTexImage2D(1, 2, 3, 4, 5, 6, 0)
+      swizzleTypes: [Number, Number, Number, Number, Number, Number, TypedArray]
+      trace:
+        0: compressedTexImage2D
+        1: (anonymous function)
+        2: executeFrameFunction
+  22: (duration)
+    0: compressedTexSubImage2D(1, 2, 3, 4, 5, 6, 7, 0)
+      swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, TypedArray]
+      trace:
+        0: compressedTexSubImage2D
+        1: (anonymous function)
+        2: executeFrameFunction
+  23: (duration)
+    0: copyTexImage2D(1, 2, 3, 4, 5, 6, 7, 8)
+      swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number]
+      trace:
+        0: copyTexImage2D
+        1: (anonymous function)
+        2: executeFrameFunction
+  24: (duration)
+    0: copyTexSubImage2D(1, 2, 3, 4, 5, 6, 7, 8)
+      swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number]
+      trace:
+        0: copyTexSubImage2D
+        1: (anonymous function)
+        2: executeFrameFunction
+  25: (duration)
+    0: createBuffer()
+      trace:
+        0: createBuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  26: (duration)
+    0: createFramebuffer()
+      trace:
+        0: createFramebuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  27: (duration)
+    0: createProgram()
+      trace:
+        0: createProgram
+        1: (anonymous function)
+        2: executeFrameFunction
+  28: (duration)
+    0: createRenderbuffer()
+      trace:
+        0: createRenderbuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  29: (duration)
+    0: createShader(1)
+      swizzleTypes: [Number]
+      trace:
+        0: createShader
+        1: (anonymous function)
+        2: executeFrameFunction
+  30: (duration)
+    0: createTexture()
+      trace:
+        0: createTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+  31: (duration)
+    0: cullFace(1)
+      swizzleTypes: [Number]
+      trace:
+        0: cullFace
+        1: (anonymous function)
+        2: executeFrameFunction
+  32: (duration)
+    0: deleteBuffer(0)
+      swizzleTypes: [WebGLBuffer]
+      trace:
+        0: deleteBuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  33: (duration)
+    0: deleteFramebuffer(0)
+      swizzleTypes: [WebGLFramebuffer]
+      trace:
+        0: deleteFramebuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  34: (duration)
+    0: deleteProgram(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: deleteProgram
+        1: (anonymous function)
+        2: executeFrameFunction
+  35: (duration)
+    0: deleteRenderbuffer(0)
+      swizzleTypes: [WebGLRenderbuffer]
+      trace:
+        0: deleteRenderbuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  36: (duration)
+    0: deleteShader(0)
+      swizzleTypes: [WebGLShader]
+      trace:
+        0: deleteShader
+        1: (anonymous function)
+        2: executeFrameFunction
+  37: (duration)
+    0: deleteTexture(0)
+      swizzleTypes: [WebGLTexture]
+      trace:
+        0: deleteTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+  38: (duration)
+    0: depthFunc(1)
+      swizzleTypes: [Number]
+      trace:
+        0: depthFunc
+        1: (anonymous function)
+        2: executeFrameFunction
+  39: (duration)
+    0: depthMask(true)
+      swizzleTypes: [Boolean]
+      trace:
+        0: depthMask
+        1: (anonymous function)
+        2: executeFrameFunction
+  40: (duration)
+    0: depthRange(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: depthRange
+        1: (anonymous function)
+        2: executeFrameFunction
+  41: (duration)
+    0: detachShader(0, 0)
+      swizzleTypes: [WebGLProgram, WebGLShader]
+      trace:
+        0: detachShader
+        1: (anonymous function)
+        2: executeFrameFunction
+  42: (duration)
+    0: disable(1)
+      swizzleTypes: [Number]
+      trace:
+        0: disable
+        1: (anonymous function)
+        2: executeFrameFunction
+  43: (duration)
+    0: disableVertexAttribArray(1)
+      swizzleTypes: [Number]
+      trace:
+        0: disableVertexAttribArray
+        1: (anonymous function)
+        2: executeFrameFunction
+  44: (duration)
+    0: drawArrays(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: drawArrays
+        1: (anonymous function)
+        2: executeFrameFunction
+      snapshot: <filtered>
+  45: (duration)
+    0: drawElements(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: drawElements
+        1: (anonymous function)
+        2: executeFrameFunction
+      snapshot: <filtered>
+  46: (duration)
+    0: enable(1)
+      swizzleTypes: [Number]
+      trace:
+        0: enable
+        1: (anonymous function)
+        2: executeFrameFunction
+  47: (duration)
+    0: enableVertexAttribArray(1)
+      swizzleTypes: [Number]
+      trace:
+        0: enableVertexAttribArray
+        1: (anonymous function)
+        2: executeFrameFunction
+  48: (duration)
+    0: finish()
+      trace:
+        0: finish
+        1: (anonymous function)
+        2: executeFrameFunction
+  49: (duration)
+    0: flush()
+      trace:
+        0: flush
+        1: (anonymous function)
+        2: executeFrameFunction
+  50: (duration)
+    0: framebufferRenderbuffer(1, 2, 3, 0)
+      swizzleTypes: [Number, Number, Number, WebGLRenderbuffer]
+      trace:
+        0: framebufferRenderbuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  51: (duration)
+    0: framebufferTexture2D(1, 2, 3, 0, 4)
+      swizzleTypes: [Number, Number, Number, WebGLTexture, Number]
+      trace:
+        0: framebufferTexture2D
+        1: (anonymous function)
+        2: executeFrameFunction
+  52: (duration)
+    0: frontFace(1)
+      swizzleTypes: [Number]
+      trace:
+        0: frontFace
+        1: (anonymous function)
+        2: executeFrameFunction
+  53: (duration)
+    0: generateMipmap(1)
+      swizzleTypes: [Number]
+      trace:
+        0: generateMipmap
+        1: (anonymous function)
+        2: executeFrameFunction
+  54: (duration)
+    0: getActiveAttrib(0, 1)
+      swizzleTypes: [WebGLProgram, Number]
+      trace:
+        0: getActiveAttrib
+        1: (anonymous function)
+        2: executeFrameFunction
+  55: (duration)
+    0: getActiveUniform(0, 1)
+      swizzleTypes: [WebGLProgram, Number]
+      trace:
+        0: getActiveUniform
+        1: (anonymous function)
+        2: executeFrameFunction
+  56: (duration)
+    0: getAttachedShaders(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: getAttachedShaders
+        1: (anonymous function)
+        2: executeFrameFunction
+  57: (duration)
+    0: getAttribLocation(0, "test")
+      swizzleTypes: [WebGLProgram, String]
+      trace:
+        0: getAttribLocation
+        1: (anonymous function)
+        2: executeFrameFunction
+  58: (duration)
+    0: getBufferParameter(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: getBufferParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  59: (duration)
+    0: getContextAttributes()
+      trace:
+        0: getContextAttributes
+        1: (anonymous function)
+        2: executeFrameFunction
+  60: (duration)
+    0: getError()
+      trace:
+        0: getError
+        1: (anonymous function)
+        2: executeFrameFunction
+  61: (duration)
+    0: getExtension("test")
+      swizzleTypes: [String]
+      trace:
+        0: getExtension
+        1: (anonymous function)
+        2: executeFrameFunction
+  62: (duration)
+    0: getFramebufferAttachmentParameter(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: getFramebufferAttachmentParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  63: (duration)
+    0: getParameter(1)
+      swizzleTypes: [Number]
+      trace:
+        0: getParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  64: (duration)
+    0: getProgramInfoLog(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: getProgramInfoLog
+        1: (anonymous function)
+        2: executeFrameFunction
+  65: (duration)
+    0: getProgramParameter(0, 1)
+      swizzleTypes: [WebGLProgram, Number]
+      trace:
+        0: getProgramParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  66: (duration)
+    0: getRenderbufferParameter(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: getRenderbufferParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  67: (duration)
+    0: getShaderInfoLog(0)
+      swizzleTypes: [WebGLShader]
+      trace:
+        0: getShaderInfoLog
+        1: (anonymous function)
+        2: executeFrameFunction
+  68: (duration)
+    0: getShaderParameter(0, 1)
+      swizzleTypes: [WebGLShader, Number]
+      trace:
+        0: getShaderParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  69: (duration)
+    0: getShaderPrecisionFormat(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: getShaderPrecisionFormat
+        1: (anonymous function)
+        2: executeFrameFunction
+  70: (duration)
+    0: getShaderSource(0)
+      swizzleTypes: [WebGLShader]
+      trace:
+        0: getShaderSource
+        1: (anonymous function)
+        2: executeFrameFunction
+  71: (duration)
+    0: getSupportedExtensions()
+      trace:
+        0: getSupportedExtensions
+        1: (anonymous function)
+        2: executeFrameFunction
+  72: (duration)
+    0: getTexParameter(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: getTexParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  73: (duration)
+    0: getUniform(0, 0)
+      swizzleTypes: [WebGLProgram, WebGLUniformLocation]
+      trace:
+        0: getUniform
+        1: (anonymous function)
+        2: executeFrameFunction
+  74: (duration)
+    0: getUniformLocation(0, "test")
+      swizzleTypes: [WebGLProgram, String]
+      trace:
+        0: getUniformLocation
+        1: (anonymous function)
+        2: executeFrameFunction
+  75: (duration)
+    0: getVertexAttrib(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: getVertexAttrib
+        1: (anonymous function)
+        2: executeFrameFunction
+  76: (duration)
+    0: getVertexAttribOffset(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: getVertexAttribOffset
+        1: (anonymous function)
+        2: executeFrameFunction
+  77: (duration)
+    0: hint(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: hint
+        1: (anonymous function)
+        2: executeFrameFunction
+  78: (duration)
+    0: isBuffer(0)
+      swizzleTypes: [WebGLBuffer]
+      trace:
+        0: isBuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  79: (duration)
+    0: isContextLost()
+      trace:
+        0: isContextLost
+        1: (anonymous function)
+        2: executeFrameFunction
+  80: (duration)
+    0: isEnabled(1)
+      swizzleTypes: [Number]
+      trace:
+        0: isEnabled
+        1: (anonymous function)
+        2: executeFrameFunction
+  81: (duration)
+    0: isFramebuffer(0)
+      swizzleTypes: [WebGLFramebuffer]
+      trace:
+        0: isFramebuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  82: (duration)
+    0: isProgram(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: isProgram
+        1: (anonymous function)
+        2: executeFrameFunction
+  83: (duration)
+    0: isRenderbuffer(0)
+      swizzleTypes: [WebGLRenderbuffer]
+      trace:
+        0: isRenderbuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  84: (duration)
+    0: isShader(0)
+      swizzleTypes: [WebGLShader]
+      trace:
+        0: isShader
+        1: (anonymous function)
+        2: executeFrameFunction
+  85: (duration)
+    0: isTexture(0)
+      swizzleTypes: [WebGLTexture]
+      trace:
+        0: isTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+  86: (duration)
+    0: lineWidth(1)
+      swizzleTypes: [Number]
+      trace:
+        0: lineWidth
+        1: (anonymous function)
+        2: executeFrameFunction
+  87: (duration)
+    0: linkProgram(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: linkProgram
+        1: (anonymous function)
+        2: executeFrameFunction
+  88: (duration)
+    0: pixelStorei(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: pixelStorei
+        1: (anonymous function)
+        2: executeFrameFunction
+  89: (duration)
+    0: polygonOffset(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: polygonOffset
+        1: (anonymous function)
+        2: executeFrameFunction
+  90: (duration)
+    0: readPixels(1, 2, 3, 4, 5, 6, 0)
+      swizzleTypes: [Number, Number, Number, Number, Number, Number, TypedArray]
+      trace:
+        0: readPixels
+        1: (anonymous function)
+        2: executeFrameFunction
+  91: (duration)
+    0: renderbufferStorage(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: renderbufferStorage
+        1: (anonymous function)
+        2: executeFrameFunction
+  92: (duration)
+    0: sampleCoverage(1, true)
+      swizzleTypes: [Number, Boolean]
+      trace:
+        0: sampleCoverage
+        1: (anonymous function)
+        2: executeFrameFunction
+  93: (duration)
+    0: scissor(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: scissor
+        1: (anonymous function)
+        2: executeFrameFunction
+  94: (duration)
+    0: shaderSource(0, "test")
+      swizzleTypes: [WebGLShader, String]
+      trace:
+        0: shaderSource
+        1: (anonymous function)
+        2: executeFrameFunction
+  95: (duration)
+    0: stencilFunc(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: stencilFunc
+        1: (anonymous function)
+        2: executeFrameFunction
+  96: (duration)
+    0: stencilFuncSeparate(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: stencilFuncSeparate
+        1: (anonymous function)
+        2: executeFrameFunction
+  97: (duration)
+    0: stencilMask(1)
+      swizzleTypes: [Number]
+      trace:
+        0: stencilMask
+        1: (anonymous function)
+        2: executeFrameFunction
+  98: (duration)
+    0: stencilMaskSeparate(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: stencilMaskSeparate
+        1: (anonymous function)
+        2: executeFrameFunction
+  99: (duration)
+    0: stencilOp(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: stencilOp
+        1: (anonymous function)
+        2: executeFrameFunction
+  100: (duration)
+    0: stencilOpSeparate(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: stencilOpSeparate
+        1: (anonymous function)
+        2: executeFrameFunction
+  101: (duration)
+    0: texImage2D(1, 2, 3, 4, 5, [object HTMLImageElement])
+      swizzleTypes: [Number, Number, Number, Number, Number, Image]
+      trace:
+        0: texImage2D
+        1: (anonymous function)
+        2: executeFrameFunction
+    1: texImage2D(6, 7, 8, 9, 10, 11, 12, 13, 0)
+      swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number, TypedArray]
+      trace:
+        0: texImage2D
+        1: (anonymous function)
+        2: executeFrameFunction
+  102: (duration)
+    0: texParameterf(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: texParameterf
+        1: (anonymous function)
+        2: executeFrameFunction
+  103: (duration)
+    0: texParameteri(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: texParameteri
+        1: (anonymous function)
+        2: executeFrameFunction
+  104: (duration)
+    0: texSubImage2D(1, 2, 3, 4, 5, 6, [object HTMLImageElement])
+      swizzleTypes: [Number, Number, Number, Number, Number, Number, Image]
+      trace:
+        0: texSubImage2D
+        1: (anonymous function)
+        2: executeFrameFunction
+    1: texSubImage2D(7, 8, 9, 10, 11, 12, 13, 14, 0)
+      swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number, TypedArray]
+      trace:
+        0: texSubImage2D
+        1: (anonymous function)
+        2: executeFrameFunction
+  105: (duration)
+    0: uniform1f(0, 1)
+      swizzleTypes: [WebGLUniformLocation, Number]
+      trace:
+        0: uniform1f
+        1: (anonymous function)
+        2: executeFrameFunction
+  106: (duration)
+    0: uniform1fv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform1fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  107: (duration)
+    0: uniform1i(0, 1)
+      swizzleTypes: [WebGLUniformLocation, Number]
+      trace:
+        0: uniform1i
+        1: (anonymous function)
+        2: executeFrameFunction
+  108: (duration)
+    0: uniform1iv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform1iv
+        1: (anonymous function)
+        2: executeFrameFunction
+  109: (duration)
+    0: uniform2f(0, 1, 2)
+      swizzleTypes: [WebGLUniformLocation, Number, Number]
+      trace:
+        0: uniform2f
+        1: (anonymous function)
+        2: executeFrameFunction
+  110: (duration)
+    0: uniform2fv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform2fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  111: (duration)
+    0: uniform2i(0, 1, 2)
+      swizzleTypes: [WebGLUniformLocation, Number, Number]
+      trace:
+        0: uniform2i
+        1: (anonymous function)
+        2: executeFrameFunction
+  112: (duration)
+    0: uniform2iv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform2iv
+        1: (anonymous function)
+        2: executeFrameFunction
+  113: (duration)
+    0: uniform3f(0, 1, 2, 3)
+      swizzleTypes: [WebGLUniformLocation, Number, Number, Number]
+      trace:
+        0: uniform3f
+        1: (anonymous function)
+        2: executeFrameFunction
+  114: (duration)
+    0: uniform3fv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform3fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  115: (duration)
+    0: uniform3i(0, 1, 2, 3)
+      swizzleTypes: [WebGLUniformLocation, Number, Number, Number]
+      trace:
+        0: uniform3i
+        1: (anonymous function)
+        2: executeFrameFunction
+  116: (duration)
+    0: uniform3iv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform3iv
+        1: (anonymous function)
+        2: executeFrameFunction
+  117: (duration)
+    0: uniform4f(0, 1, 2, 3, 4)
+      swizzleTypes: [WebGLUniformLocation, Number, Number, Number, Number]
+      trace:
+        0: uniform4f
+        1: (anonymous function)
+        2: executeFrameFunction
+  118: (duration)
+    0: uniform4fv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform4fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  119: (duration)
+    0: uniform4i(0, 1, 2, 3, 4)
+      swizzleTypes: [WebGLUniformLocation, Number, Number, Number, Number]
+      trace:
+        0: uniform4i
+        1: (anonymous function)
+        2: executeFrameFunction
+  120: (duration)
+    0: uniform4iv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform4iv
+        1: (anonymous function)
+        2: executeFrameFunction
+  121: (duration)
+    0: uniformMatrix2fv(0, true, 0)
+      swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray]
+      trace:
+        0: uniformMatrix2fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  122: (duration)
+    0: uniformMatrix3fv(0, true, 0)
+      swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray]
+      trace:
+        0: uniformMatrix3fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  123: (duration)
+    0: uniformMatrix4fv(0, true, 0)
+      swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray]
+      trace:
+        0: uniformMatrix4fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  124: (duration)
+    0: useProgram(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: useProgram
+        1: (anonymous function)
+        2: executeFrameFunction
+  125: (duration)
+    0: validateProgram(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: validateProgram
+        1: (anonymous function)
+        2: executeFrameFunction
+  126: (duration)
+    0: vertexAttrib1f(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: vertexAttrib1f
+        1: (anonymous function)
+        2: executeFrameFunction
+  127: (duration)
+    0: vertexAttrib1fv(1, 0)
+      swizzleTypes: [Number, TypedArray]
+      trace:
+        0: vertexAttrib1fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  128: (duration)
+    0: vertexAttrib2f(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: vertexAttrib2f
+        1: (anonymous function)
+        2: executeFrameFunction
+  129: (duration)
+    0: vertexAttrib2fv(1, 0)
+      swizzleTypes: [Number, TypedArray]
+      trace:
+        0: vertexAttrib2fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  130: (duration)
+    0: vertexAttrib3f(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: vertexAttrib3f
+        1: (anonymous function)
+        2: executeFrameFunction
+  131: (duration)
+    0: vertexAttrib3fv(1, 0)
+      swizzleTypes: [Number, TypedArray]
+      trace:
+        0: vertexAttrib3fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  132: (duration)
+    0: vertexAttrib4f(1, 2, 3, 4, 5)
+      swizzleTypes: [Number, Number, Number, Number, Number]
+      trace:
+        0: vertexAttrib4f
+        1: (anonymous function)
+        2: executeFrameFunction
+  133: (duration)
+    0: vertexAttrib4fv(1, 0)
+      swizzleTypes: [Number, TypedArray]
+      trace:
+        0: vertexAttrib4fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  134: (duration)
+    0: vertexAttribPointer(1, 2, 3, true, 5, 6)
+      swizzleTypes: [Number, Number, Number, Boolean, Number, Number]
+      trace:
+        0: vertexAttribPointer
+        1: (anonymous function)
+        2: executeFrameFunction
+  135: (duration)
+    0: viewport(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: viewport
+        1: (anonymous function)
+        2: executeFrameFunction
+  136: (duration)
+    0: width
+      trace:
+        0: (anonymous function)
+        1: executeFrameFunction
+    1: width = 2
+      swizzleTypes: [Number]
+      trace:
+        0: (anonymous function)
+        1: executeFrameFunction
+  137: (duration)
+    0: height
+      trace:
+        0: (anonymous function)
+        1: executeFrameFunction
+    1: height = 2
+      swizzleTypes: [Number]
+      trace:
+        0: (anonymous function)
+        1: executeFrameFunction
+

Copied: branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl-memoryLimit-expected.txt (from rev 284957, branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-memoryLimit-expected.txt) (0 => 284963)


--- branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl-memoryLimit-expected.txt	                        (rev 0)
+++ branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl-memoryLimit-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -0,0 +1,26 @@
+Test that CanvasManager is able to record actions made to WebGL canvas contexts.
+
+
+== Running test suite: Canvas.recordingWebGL
+-- Running test case: Canvas.recordingWebGL.memoryLimit
+initialState:
+  attributes:
+    width: 2
+    height: 2
+  parameters:
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"low-power","failIfMajorPerformanceCaveat":false}
+  content: <filtered>
+frames:
+  0: (duration) (incomplete)
+    0: activeTexture(1)
+      swizzleTypes: [Number]
+      trace:
+        0: activeTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+        3: performActions
+        4: Global Code
+        5: evaluateWithScopeExtension
+        6: (anonymous function)
+        7: _wrapCall
+

Copied: branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl-snapshots-expected.txt (from rev 284957, branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl-snapshots-expected.txt) (0 => 284963)


--- branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl-snapshots-expected.txt	                        (rev 0)
+++ branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl-snapshots-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -0,0 +1,139 @@
+Test that CanvasManager is able to record actions made to WebGL canvas contexts.
+
+
+== Running test suite: Canvas.recordingWebGL
+-- Running test case: Canvas.recordingWebGL.snapshots
+initialState:
+  attributes:
+    width: 300
+    height: 150
+  parameters:
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"low-power","failIfMajorPerformanceCaveat":false}
+  content: <filtered>
+frames:
+  0: (duration)
+    0: useProgram(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: useProgram
+        1: performActions
+        2: Global Code
+        3: evaluateWithScopeExtension
+        4: (anonymous function)
+        5: _wrapCall
+    1: clearColor(0, 0, 0, 1)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: clearColor
+        1: clearContext
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+    2: clear(16384)
+      swizzleTypes: [Number]
+      trace:
+        0: clear
+        1: clearContext
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+      snapshot: <PASS: content changed>
+    3: bufferData(34962, 0, 35044)
+      swizzleTypes: [Number, TypedArray, Number]
+      trace:
+        0: bufferData
+        1: drawArrays
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+    4: drawArrays(4, 0, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: drawArrays
+        1: drawArrays
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+      snapshot: <PASS: content changed>
+    5: clearColor(0, 0, 0, 1)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: clearColor
+        1: clearContext
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+    6: clear(16384)
+      swizzleTypes: [Number]
+      trace:
+        0: clear
+        1: clearContext
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+      snapshot: <PASS: content changed>
+    7: bufferData(34962, 0, 35044)
+      swizzleTypes: [Number, TypedArray, Number]
+      trace:
+        0: bufferData
+        1: drawElements
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+    8: bufferData(34963, 0, 35044)
+      swizzleTypes: [Number, TypedArray, Number]
+      trace:
+        0: bufferData
+        1: drawElements
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+    9: drawElements(4, 3, 5123, 0)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: drawElements
+        1: drawElements
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+      snapshot: <PASS: content changed>
+    10: clearColor(0, 0, 0, 1)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: clearColor
+        1: clearContext
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+    11: clear(16384)
+      swizzleTypes: [Number]
+      trace:
+        0: clear
+        1: clearContext
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+      snapshot: <PASS: content changed>
+

Copied: branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl2-frameCount-expected.txt (from rev 284957, branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-frameCount-expected.txt) (0 => 284963)


--- branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl2-frameCount-expected.txt	                        (rev 0)
+++ branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl2-frameCount-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -0,0 +1,26 @@
+Test that CanvasManager is able to record actions made to WebGL2 canvas contexts.
+
+
+== Running test suite: Canvas.recordingWebGL2
+-- Running test case: Canvas.recordingWebGL2.singleFrame
+initialState:
+  attributes:
+    width: 2
+    height: 2
+  parameters:
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"low-power","failIfMajorPerformanceCaveat":false}
+  content: <filtered>
+frames:
+  0: (duration)
+    0: activeTexture(1)
+      swizzleTypes: [Number]
+      trace:
+        0: activeTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+        3: performActions
+        4: Global Code
+        5: evaluateWithScopeExtension
+        6: (anonymous function)
+        7: _wrapCall
+

Copied: branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl2-full-expected.txt (from rev 284957, branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-full-expected.txt) (0 => 284963)


--- branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl2-full-expected.txt	                        (rev 0)
+++ branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl2-full-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -0,0 +1,968 @@
+Test that CanvasManager is able to record actions made to WebGL2 canvas contexts.
+
+
+== Running test suite: Canvas.recordingWebGL2
+-- Running test case: Canvas.recordingWebGL2.multipleFrames
+initialState:
+  attributes:
+    width: 2
+    height: 2
+  parameters:
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"low-power","failIfMajorPerformanceCaveat":false}
+  content: <filtered>
+frames:
+  0: (duration)
+    0: activeTexture(1)
+      swizzleTypes: [Number]
+      trace:
+        0: activeTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+        3: performActions
+        4: Global Code
+        5: evaluateWithScopeExtension
+        6: (anonymous function)
+        7: _wrapCall
+  1: (duration)
+    0: attachShader(0, 0)
+      swizzleTypes: [WebGLProgram, WebGLShader]
+      trace:
+        0: attachShader
+        1: (anonymous function)
+        2: executeFrameFunction
+  2: (duration)
+    0: bindAttribLocation(0, 1, "test")
+      swizzleTypes: [WebGLProgram, Number, String]
+      trace:
+        0: bindAttribLocation
+        1: (anonymous function)
+        2: executeFrameFunction
+  3: (duration)
+    0: bindBuffer(1, 0)
+      swizzleTypes: [Number, WebGLBuffer]
+      trace:
+        0: bindBuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  4: (duration)
+    0: bindFramebuffer(1, 0)
+      swizzleTypes: [Number, WebGLFramebuffer]
+      trace:
+        0: bindFramebuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  5: (duration)
+    0: bindRenderbuffer(1, 0)
+      swizzleTypes: [Number, WebGLRenderbuffer]
+      trace:
+        0: bindRenderbuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  6: (duration)
+    0: bindTexture(1, 0)
+      swizzleTypes: [Number, WebGLTexture]
+      trace:
+        0: bindTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+  7: (duration)
+    0: blendColor(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: blendColor
+        1: (anonymous function)
+        2: executeFrameFunction
+  8: (duration)
+    0: blendEquation(1)
+      swizzleTypes: [Number]
+      trace:
+        0: blendEquation
+        1: (anonymous function)
+        2: executeFrameFunction
+  9: (duration)
+    0: blendEquationSeparate(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: blendEquationSeparate
+        1: (anonymous function)
+        2: executeFrameFunction
+  10: (duration)
+    0: blendFunc(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: blendFunc
+        1: (anonymous function)
+        2: executeFrameFunction
+  11: (duration)
+    0: blendFuncSeparate(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: blendFuncSeparate
+        1: (anonymous function)
+        2: executeFrameFunction
+  12: (duration)
+    0: bufferData(1, 0, 2)
+      swizzleTypes: [Number, TypedArray, Number]
+      trace:
+        0: bufferData
+        1: (anonymous function)
+        2: executeFrameFunction
+    1: bufferData(3, 4, 5)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: bufferData
+        1: (anonymous function)
+        2: executeFrameFunction
+  13: (duration)
+    0: bufferSubData(1, 2, 0)
+      swizzleTypes: [Number, Number, TypedArray]
+      trace:
+        0: bufferSubData
+        1: (anonymous function)
+        2: executeFrameFunction
+  14: (duration)
+    0: checkFramebufferStatus(1)
+      swizzleTypes: [Number]
+      trace:
+        0: checkFramebufferStatus
+        1: (anonymous function)
+        2: executeFrameFunction
+  15: (duration)
+    0: clear(1)
+      swizzleTypes: [Number]
+      trace:
+        0: clear
+        1: (anonymous function)
+        2: executeFrameFunction
+      snapshot: <filtered>
+  16: (duration)
+    0: clearColor(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: clearColor
+        1: (anonymous function)
+        2: executeFrameFunction
+  17: (duration)
+    0: clearDepth(1)
+      swizzleTypes: [Number]
+      trace:
+        0: clearDepth
+        1: (anonymous function)
+        2: executeFrameFunction
+  18: (duration)
+    0: clearStencil(1)
+      swizzleTypes: [Number]
+      trace:
+        0: clearStencil
+        1: (anonymous function)
+        2: executeFrameFunction
+  19: (duration)
+    0: colorMask(true, false, true, false)
+      swizzleTypes: [Boolean, Boolean, Boolean, Boolean]
+      trace:
+        0: colorMask
+        1: (anonymous function)
+        2: executeFrameFunction
+  20: (duration)
+    0: compileShader(0)
+      swizzleTypes: [WebGLShader]
+      trace:
+        0: compileShader
+        1: (anonymous function)
+        2: executeFrameFunction
+  21: (duration)
+    0: compressedTexSubImage2D(1, 2, 3, 4, 5, 6, 7, 0)
+      swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, TypedArray]
+      trace:
+        0: compressedTexSubImage2D
+        1: (anonymous function)
+        2: executeFrameFunction
+  22: (duration)
+    0: copyTexImage2D(1, 2, 3, 4, 5, 6, 7, 8)
+      swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number]
+      trace:
+        0: copyTexImage2D
+        1: (anonymous function)
+        2: executeFrameFunction
+  23: (duration)
+    0: copyTexSubImage2D(1, 2, 3, 4, 5, 6, 7, 8)
+      swizzleTypes: [Number, Number, Number, Number, Number, Number, Number, Number]
+      trace:
+        0: copyTexSubImage2D
+        1: (anonymous function)
+        2: executeFrameFunction
+  24: (duration)
+    0: createBuffer()
+      trace:
+        0: createBuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  25: (duration)
+    0: createFramebuffer()
+      trace:
+        0: createFramebuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  26: (duration)
+    0: createProgram()
+      trace:
+        0: createProgram
+        1: (anonymous function)
+        2: executeFrameFunction
+  27: (duration)
+    0: createRenderbuffer()
+      trace:
+        0: createRenderbuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  28: (duration)
+    0: createShader(1)
+      swizzleTypes: [Number]
+      trace:
+        0: createShader
+        1: (anonymous function)
+        2: executeFrameFunction
+  29: (duration)
+    0: createTexture()
+      trace:
+        0: createTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+  30: (duration)
+    0: cullFace(1)
+      swizzleTypes: [Number]
+      trace:
+        0: cullFace
+        1: (anonymous function)
+        2: executeFrameFunction
+  31: (duration)
+    0: deleteBuffer(0)
+      swizzleTypes: [WebGLBuffer]
+      trace:
+        0: deleteBuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  32: (duration)
+    0: deleteFramebuffer(0)
+      swizzleTypes: [WebGLFramebuffer]
+      trace:
+        0: deleteFramebuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  33: (duration)
+    0: deleteProgram(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: deleteProgram
+        1: (anonymous function)
+        2: executeFrameFunction
+  34: (duration)
+    0: deleteRenderbuffer(0)
+      swizzleTypes: [WebGLRenderbuffer]
+      trace:
+        0: deleteRenderbuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  35: (duration)
+    0: deleteShader(0)
+      swizzleTypes: [WebGLShader]
+      trace:
+        0: deleteShader
+        1: (anonymous function)
+        2: executeFrameFunction
+  36: (duration)
+    0: deleteTexture(0)
+      swizzleTypes: [WebGLTexture]
+      trace:
+        0: deleteTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+  37: (duration)
+    0: depthFunc(1)
+      swizzleTypes: [Number]
+      trace:
+        0: depthFunc
+        1: (anonymous function)
+        2: executeFrameFunction
+  38: (duration)
+    0: depthMask(true)
+      swizzleTypes: [Boolean]
+      trace:
+        0: depthMask
+        1: (anonymous function)
+        2: executeFrameFunction
+  39: (duration)
+    0: depthRange(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: depthRange
+        1: (anonymous function)
+        2: executeFrameFunction
+  40: (duration)
+    0: detachShader(0, 0)
+      swizzleTypes: [WebGLProgram, WebGLShader]
+      trace:
+        0: detachShader
+        1: (anonymous function)
+        2: executeFrameFunction
+  41: (duration)
+    0: disable(1)
+      swizzleTypes: [Number]
+      trace:
+        0: disable
+        1: (anonymous function)
+        2: executeFrameFunction
+  42: (duration)
+    0: disableVertexAttribArray(1)
+      swizzleTypes: [Number]
+      trace:
+        0: disableVertexAttribArray
+        1: (anonymous function)
+        2: executeFrameFunction
+  43: (duration)
+    0: drawArrays(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: drawArrays
+        1: (anonymous function)
+        2: executeFrameFunction
+      snapshot: <filtered>
+  44: (duration)
+    0: drawElements(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: drawElements
+        1: (anonymous function)
+        2: executeFrameFunction
+      snapshot: <filtered>
+  45: (duration)
+    0: enable(1)
+      swizzleTypes: [Number]
+      trace:
+        0: enable
+        1: (anonymous function)
+        2: executeFrameFunction
+  46: (duration)
+    0: enableVertexAttribArray(1)
+      swizzleTypes: [Number]
+      trace:
+        0: enableVertexAttribArray
+        1: (anonymous function)
+        2: executeFrameFunction
+  47: (duration)
+    0: finish()
+      trace:
+        0: finish
+        1: (anonymous function)
+        2: executeFrameFunction
+  48: (duration)
+    0: flush()
+      trace:
+        0: flush
+        1: (anonymous function)
+        2: executeFrameFunction
+  49: (duration)
+    0: framebufferRenderbuffer(1, 2, 3, 0)
+      swizzleTypes: [Number, Number, Number, WebGLRenderbuffer]
+      trace:
+        0: framebufferRenderbuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  50: (duration)
+    0: framebufferTexture2D(1, 2, 3, 0, 4)
+      swizzleTypes: [Number, Number, Number, WebGLTexture, Number]
+      trace:
+        0: framebufferTexture2D
+        1: (anonymous function)
+        2: executeFrameFunction
+  51: (duration)
+    0: frontFace(1)
+      swizzleTypes: [Number]
+      trace:
+        0: frontFace
+        1: (anonymous function)
+        2: executeFrameFunction
+  52: (duration)
+    0: generateMipmap(1)
+      swizzleTypes: [Number]
+      trace:
+        0: generateMipmap
+        1: (anonymous function)
+        2: executeFrameFunction
+  53: (duration)
+    0: getActiveAttrib(0, 1)
+      swizzleTypes: [WebGLProgram, Number]
+      trace:
+        0: getActiveAttrib
+        1: (anonymous function)
+        2: executeFrameFunction
+  54: (duration)
+    0: getActiveUniform(0, 1)
+      swizzleTypes: [WebGLProgram, Number]
+      trace:
+        0: getActiveUniform
+        1: (anonymous function)
+        2: executeFrameFunction
+  55: (duration)
+    0: getAttachedShaders(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: getAttachedShaders
+        1: (anonymous function)
+        2: executeFrameFunction
+  56: (duration)
+    0: getAttribLocation(0, "test")
+      swizzleTypes: [WebGLProgram, String]
+      trace:
+        0: getAttribLocation
+        1: (anonymous function)
+        2: executeFrameFunction
+  57: (duration)
+    0: getBufferParameter(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: getBufferParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  58: (duration)
+    0: getContextAttributes()
+      trace:
+        0: getContextAttributes
+        1: (anonymous function)
+        2: executeFrameFunction
+  59: (duration)
+    0: getError()
+      trace:
+        0: getError
+        1: (anonymous function)
+        2: executeFrameFunction
+  60: (duration)
+    0: getExtension("test")
+      swizzleTypes: [String]
+      trace:
+        0: getExtension
+        1: (anonymous function)
+        2: executeFrameFunction
+  61: (duration)
+    0: getFramebufferAttachmentParameter(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: getFramebufferAttachmentParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  62: (duration)
+    0: getParameter(1)
+      swizzleTypes: [Number]
+      trace:
+        0: getParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  63: (duration)
+    0: getProgramInfoLog(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: getProgramInfoLog
+        1: (anonymous function)
+        2: executeFrameFunction
+  64: (duration)
+    0: getProgramParameter(0, 1)
+      swizzleTypes: [WebGLProgram, Number]
+      trace:
+        0: getProgramParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  65: (duration)
+    0: getRenderbufferParameter(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: getRenderbufferParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  66: (duration)
+    0: getShaderInfoLog(0)
+      swizzleTypes: [WebGLShader]
+      trace:
+        0: getShaderInfoLog
+        1: (anonymous function)
+        2: executeFrameFunction
+  67: (duration)
+    0: getShaderParameter(0, 1)
+      swizzleTypes: [WebGLShader, Number]
+      trace:
+        0: getShaderParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  68: (duration)
+    0: getShaderPrecisionFormat(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: getShaderPrecisionFormat
+        1: (anonymous function)
+        2: executeFrameFunction
+  69: (duration)
+    0: getShaderSource(0)
+      swizzleTypes: [WebGLShader]
+      trace:
+        0: getShaderSource
+        1: (anonymous function)
+        2: executeFrameFunction
+  70: (duration)
+    0: getSupportedExtensions()
+      trace:
+        0: getSupportedExtensions
+        1: (anonymous function)
+        2: executeFrameFunction
+  71: (duration)
+    0: getTexParameter(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: getTexParameter
+        1: (anonymous function)
+        2: executeFrameFunction
+  72: (duration)
+    0: getUniform(0, 0)
+      swizzleTypes: [WebGLProgram, WebGLUniformLocation]
+      trace:
+        0: getUniform
+        1: (anonymous function)
+        2: executeFrameFunction
+  73: (duration)
+    0: getUniformLocation(0, "test")
+      swizzleTypes: [WebGLProgram, String]
+      trace:
+        0: getUniformLocation
+        1: (anonymous function)
+        2: executeFrameFunction
+  74: (duration)
+    0: getVertexAttrib(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: getVertexAttrib
+        1: (anonymous function)
+        2: executeFrameFunction
+  75: (duration)
+    0: getVertexAttribOffset(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: getVertexAttribOffset
+        1: (anonymous function)
+        2: executeFrameFunction
+  76: (duration)
+    0: hint(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: hint
+        1: (anonymous function)
+        2: executeFrameFunction
+  77: (duration)
+    0: isBuffer(0)
+      swizzleTypes: [WebGLBuffer]
+      trace:
+        0: isBuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  78: (duration)
+    0: isContextLost()
+      trace:
+        0: isContextLost
+        1: (anonymous function)
+        2: executeFrameFunction
+  79: (duration)
+    0: isEnabled(1)
+      swizzleTypes: [Number]
+      trace:
+        0: isEnabled
+        1: (anonymous function)
+        2: executeFrameFunction
+  80: (duration)
+    0: isFramebuffer(0)
+      swizzleTypes: [WebGLFramebuffer]
+      trace:
+        0: isFramebuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  81: (duration)
+    0: isProgram(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: isProgram
+        1: (anonymous function)
+        2: executeFrameFunction
+  82: (duration)
+    0: isRenderbuffer(0)
+      swizzleTypes: [WebGLRenderbuffer]
+      trace:
+        0: isRenderbuffer
+        1: (anonymous function)
+        2: executeFrameFunction
+  83: (duration)
+    0: isShader(0)
+      swizzleTypes: [WebGLShader]
+      trace:
+        0: isShader
+        1: (anonymous function)
+        2: executeFrameFunction
+  84: (duration)
+    0: isTexture(0)
+      swizzleTypes: [WebGLTexture]
+      trace:
+        0: isTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+  85: (duration)
+    0: lineWidth(1)
+      swizzleTypes: [Number]
+      trace:
+        0: lineWidth
+        1: (anonymous function)
+        2: executeFrameFunction
+  86: (duration)
+    0: linkProgram(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: linkProgram
+        1: (anonymous function)
+        2: executeFrameFunction
+  87: (duration)
+    0: pixelStorei(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: pixelStorei
+        1: (anonymous function)
+        2: executeFrameFunction
+  88: (duration)
+    0: polygonOffset(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: polygonOffset
+        1: (anonymous function)
+        2: executeFrameFunction
+  89: (duration)
+    0: readPixels(1, 2, 3, 4, 5, 6, 0)
+      swizzleTypes: [Number, Number, Number, Number, Number, Number, TypedArray]
+      trace:
+        0: readPixels
+        1: (anonymous function)
+        2: executeFrameFunction
+  90: (duration)
+    0: renderbufferStorage(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: renderbufferStorage
+        1: (anonymous function)
+        2: executeFrameFunction
+  91: (duration)
+    0: sampleCoverage(1, true)
+      swizzleTypes: [Number, Boolean]
+      trace:
+        0: sampleCoverage
+        1: (anonymous function)
+        2: executeFrameFunction
+  92: (duration)
+    0: scissor(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: scissor
+        1: (anonymous function)
+        2: executeFrameFunction
+  93: (duration)
+    0: shaderSource(0, "test")
+      swizzleTypes: [WebGLShader, String]
+      trace:
+        0: shaderSource
+        1: (anonymous function)
+        2: executeFrameFunction
+  94: (duration)
+    0: stencilFunc(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: stencilFunc
+        1: (anonymous function)
+        2: executeFrameFunction
+  95: (duration)
+    0: stencilFuncSeparate(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: stencilFuncSeparate
+        1: (anonymous function)
+        2: executeFrameFunction
+  96: (duration)
+    0: stencilMask(1)
+      swizzleTypes: [Number]
+      trace:
+        0: stencilMask
+        1: (anonymous function)
+        2: executeFrameFunction
+  97: (duration)
+    0: stencilMaskSeparate(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: stencilMaskSeparate
+        1: (anonymous function)
+        2: executeFrameFunction
+  98: (duration)
+    0: stencilOp(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: stencilOp
+        1: (anonymous function)
+        2: executeFrameFunction
+  99: (duration)
+    0: stencilOpSeparate(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: stencilOpSeparate
+        1: (anonymous function)
+        2: executeFrameFunction
+  100: (duration)
+    0: texParameterf(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: texParameterf
+        1: (anonymous function)
+        2: executeFrameFunction
+  101: (duration)
+    0: texParameteri(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: texParameteri
+        1: (anonymous function)
+        2: executeFrameFunction
+  102: (duration)
+    0: uniform1f(0, 1)
+      swizzleTypes: [WebGLUniformLocation, Number]
+      trace:
+        0: uniform1f
+        1: (anonymous function)
+        2: executeFrameFunction
+  103: (duration)
+    0: uniform1fv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform1fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  104: (duration)
+    0: uniform1i(0, 1)
+      swizzleTypes: [WebGLUniformLocation, Number]
+      trace:
+        0: uniform1i
+        1: (anonymous function)
+        2: executeFrameFunction
+  105: (duration)
+    0: uniform1iv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform1iv
+        1: (anonymous function)
+        2: executeFrameFunction
+  106: (duration)
+    0: uniform2f(0, 1, 2)
+      swizzleTypes: [WebGLUniformLocation, Number, Number]
+      trace:
+        0: uniform2f
+        1: (anonymous function)
+        2: executeFrameFunction
+  107: (duration)
+    0: uniform2fv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform2fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  108: (duration)
+    0: uniform2i(0, 1, 2)
+      swizzleTypes: [WebGLUniformLocation, Number, Number]
+      trace:
+        0: uniform2i
+        1: (anonymous function)
+        2: executeFrameFunction
+  109: (duration)
+    0: uniform2iv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform2iv
+        1: (anonymous function)
+        2: executeFrameFunction
+  110: (duration)
+    0: uniform3f(0, 1, 2, 3)
+      swizzleTypes: [WebGLUniformLocation, Number, Number, Number]
+      trace:
+        0: uniform3f
+        1: (anonymous function)
+        2: executeFrameFunction
+  111: (duration)
+    0: uniform3fv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform3fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  112: (duration)
+    0: uniform3i(0, 1, 2, 3)
+      swizzleTypes: [WebGLUniformLocation, Number, Number, Number]
+      trace:
+        0: uniform3i
+        1: (anonymous function)
+        2: executeFrameFunction
+  113: (duration)
+    0: uniform3iv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform3iv
+        1: (anonymous function)
+        2: executeFrameFunction
+  114: (duration)
+    0: uniform4f(0, 1, 2, 3, 4)
+      swizzleTypes: [WebGLUniformLocation, Number, Number, Number, Number]
+      trace:
+        0: uniform4f
+        1: (anonymous function)
+        2: executeFrameFunction
+  115: (duration)
+    0: uniform4fv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform4fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  116: (duration)
+    0: uniform4i(0, 1, 2, 3, 4)
+      swizzleTypes: [WebGLUniformLocation, Number, Number, Number, Number]
+      trace:
+        0: uniform4i
+        1: (anonymous function)
+        2: executeFrameFunction
+  117: (duration)
+    0: uniform4iv(0, 0)
+      swizzleTypes: [WebGLUniformLocation, TypedArray]
+      trace:
+        0: uniform4iv
+        1: (anonymous function)
+        2: executeFrameFunction
+  118: (duration)
+    0: uniformMatrix2fv(0, true, 0)
+      swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray]
+      trace:
+        0: uniformMatrix2fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  119: (duration)
+    0: uniformMatrix3fv(0, true, 0)
+      swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray]
+      trace:
+        0: uniformMatrix3fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  120: (duration)
+    0: uniformMatrix4fv(0, true, 0)
+      swizzleTypes: [WebGLUniformLocation, Boolean, TypedArray]
+      trace:
+        0: uniformMatrix4fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  121: (duration)
+    0: useProgram(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: useProgram
+        1: (anonymous function)
+        2: executeFrameFunction
+  122: (duration)
+    0: validateProgram(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: validateProgram
+        1: (anonymous function)
+        2: executeFrameFunction
+  123: (duration)
+    0: vertexAttrib1f(1, 2)
+      swizzleTypes: [Number, Number]
+      trace:
+        0: vertexAttrib1f
+        1: (anonymous function)
+        2: executeFrameFunction
+  124: (duration)
+    0: vertexAttrib1fv(1, 0)
+      swizzleTypes: [Number, TypedArray]
+      trace:
+        0: vertexAttrib1fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  125: (duration)
+    0: vertexAttrib2f(1, 2, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: vertexAttrib2f
+        1: (anonymous function)
+        2: executeFrameFunction
+  126: (duration)
+    0: vertexAttrib2fv(1, 0)
+      swizzleTypes: [Number, TypedArray]
+      trace:
+        0: vertexAttrib2fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  127: (duration)
+    0: vertexAttrib3f(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: vertexAttrib3f
+        1: (anonymous function)
+        2: executeFrameFunction
+  128: (duration)
+    0: vertexAttrib3fv(1, 0)
+      swizzleTypes: [Number, TypedArray]
+      trace:
+        0: vertexAttrib3fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  129: (duration)
+    0: vertexAttrib4f(1, 2, 3, 4, 5)
+      swizzleTypes: [Number, Number, Number, Number, Number]
+      trace:
+        0: vertexAttrib4f
+        1: (anonymous function)
+        2: executeFrameFunction
+  130: (duration)
+    0: vertexAttrib4fv(1, 0)
+      swizzleTypes: [Number, TypedArray]
+      trace:
+        0: vertexAttrib4fv
+        1: (anonymous function)
+        2: executeFrameFunction
+  131: (duration)
+    0: vertexAttribPointer(1, 2, 3, true, 5, 6)
+      swizzleTypes: [Number, Number, Number, Boolean, Number, Number]
+      trace:
+        0: vertexAttribPointer
+        1: (anonymous function)
+        2: executeFrameFunction
+  132: (duration)
+    0: viewport(1, 2, 3, 4)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: viewport
+        1: (anonymous function)
+        2: executeFrameFunction
+  133: (duration)
+    0: width
+      trace:
+        0: (anonymous function)
+        1: executeFrameFunction
+    1: width = 2
+      swizzleTypes: [Number]
+      trace:
+        0: (anonymous function)
+        1: executeFrameFunction
+  134: (duration)
+    0: height
+      trace:
+        0: (anonymous function)
+        1: executeFrameFunction
+    1: height = 2
+      swizzleTypes: [Number]
+      trace:
+        0: (anonymous function)
+        1: executeFrameFunction
+

Copied: branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl2-memoryLimit-expected.txt (from rev 284957, branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-memoryLimit-expected.txt) (0 => 284963)


--- branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl2-memoryLimit-expected.txt	                        (rev 0)
+++ branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl2-memoryLimit-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -0,0 +1,26 @@
+Test that CanvasManager is able to record actions made to WebGL2 canvas contexts.
+
+
+== Running test suite: Canvas.recordingWebGL2
+-- Running test case: Canvas.recordingWebGL2.memoryLimit
+initialState:
+  attributes:
+    width: 2
+    height: 2
+  parameters:
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"low-power","failIfMajorPerformanceCaveat":false}
+  content: <filtered>
+frames:
+  0: (duration) (incomplete)
+    0: activeTexture(1)
+      swizzleTypes: [Number]
+      trace:
+        0: activeTexture
+        1: (anonymous function)
+        2: executeFrameFunction
+        3: performActions
+        4: Global Code
+        5: evaluateWithScopeExtension
+        6: (anonymous function)
+        7: _wrapCall
+

Copied: branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl2-snapshots-expected.txt (from rev 284957, branches/safari-612-branch/LayoutTests/inspector/canvas/recording-webgl2-snapshots-expected.txt) (0 => 284963)


--- branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl2-snapshots-expected.txt	                        (rev 0)
+++ branches/safari-612-branch/LayoutTests/platform/mac-wk1/inspector/canvas/recording-webgl2-snapshots-expected.txt	2021-10-27 22:47:37 UTC (rev 284963)
@@ -0,0 +1,139 @@
+Test that CanvasManager is able to record actions made to WebGL2 canvas contexts.
+
+
+== Running test suite: Canvas.recordingWebGL2
+-- Running test case: Canvas.recordingWebGL2.snapshots
+initialState:
+  attributes:
+    width: 300
+    height: 150
+  parameters:
+    0: {"alpha":true,"depth":true,"stencil":false,"antialias":true,"premultipliedAlpha":true,"preserveDrawingBuffer":false,"powerPreference":"low-power","failIfMajorPerformanceCaveat":false}
+  content: <filtered>
+frames:
+  0: (duration)
+    0: useProgram(0)
+      swizzleTypes: [WebGLProgram]
+      trace:
+        0: useProgram
+        1: performActions
+        2: Global Code
+        3: evaluateWithScopeExtension
+        4: (anonymous function)
+        5: _wrapCall
+    1: clearColor(0, 0, 0, 1)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: clearColor
+        1: clearContext
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+    2: clear(16384)
+      swizzleTypes: [Number]
+      trace:
+        0: clear
+        1: clearContext
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+      snapshot: <PASS: content changed>
+    3: bufferData(34962, 0, 35044)
+      swizzleTypes: [Number, TypedArray, Number]
+      trace:
+        0: bufferData
+        1: drawArrays
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+    4: drawArrays(4, 0, 3)
+      swizzleTypes: [Number, Number, Number]
+      trace:
+        0: drawArrays
+        1: drawArrays
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+      snapshot: <PASS: content changed>
+    5: clearColor(0, 0, 0, 1)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: clearColor
+        1: clearContext
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+    6: clear(16384)
+      swizzleTypes: [Number]
+      trace:
+        0: clear
+        1: clearContext
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+      snapshot: <PASS: content changed>
+    7: bufferData(34962, 0, 35044)
+      swizzleTypes: [Number, TypedArray, Number]
+      trace:
+        0: bufferData
+        1: drawElements
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+    8: bufferData(34963, 0, 35044)
+      swizzleTypes: [Number, TypedArray, Number]
+      trace:
+        0: bufferData
+        1: drawElements
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+    9: drawElements(4, 3, 5123, 0)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: drawElements
+        1: drawElements
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+      snapshot: <PASS: content changed>
+    10: clearColor(0, 0, 0, 1)
+      swizzleTypes: [Number, Number, Number, Number]
+      trace:
+        0: clearColor
+        1: clearContext
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+    11: clear(16384)
+      swizzleTypes: [Number]
+      trace:
+        0: clear
+        1: clearContext
+        2: performActions
+        3: Global Code
+        4: evaluateWithScopeExtension
+        5: (anonymous function)
+        6: _wrapCall
+      snapshot: <PASS: content changed>
+

Modified: branches/safari-612-branch/Source/_javascript_Core/ChangeLog (284962 => 284963)


--- branches/safari-612-branch/Source/_javascript_Core/ChangeLog	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/Source/_javascript_Core/ChangeLog	2021-10-27 22:47:37 UTC (rev 284963)
@@ -251,6 +251,63 @@
             * wasm/WasmTable.cpp:
             (JSC::Wasm::Table::grow):
 
+2021-10-25  Null  <[email protected]>
+
+        Cherry-pick r282984. rdar://problem/77587429
+
+    Web Inspector: Graphics: add instrumentation for new `CanvasRenderingContext2DSettings`
+    https://bugs.webkit.org/show_bug.cgi?id=225180
+    <rdar://problem/77587429>
+    
+    Reviewed by BJ Burg.
+    
+    Source/_javascript_Core:
+    
+    * inspector/protocol/Canvas.json:
+    Add `colorSpace` and `desynchronized` to `Canvas.ContextAttributes`.
+    
+    Source/WebCore:
+    
+    * inspector/InspectorCanvas.cpp:
+    (WebCore::buildObjectForCanvasContextAttributes): Added.
+    (WebCore::InspectorCanvas::buildObjectForCanvas):
+    (WebCore::InspectorCanvas::buildInitialState):
+    Unify the two cases where we fetch canvas attributes into a single method so that both get
+    the same data. This means that the canvas recorder now also uses `Canvas.ContextAttributes`.
+    
+    LayoutTests:
+    
+    * inspector/canvas/context-attributes-expected.txt:
+    * inspector/canvas/recording-2d-frameCount-expected.txt:
+    * inspector/canvas/recording-2d-full-expected.txt:
+    * inspector/canvas/recording-2d-memoryLimit-expected.txt:
+    * inspector/canvas/recording-bitmaprenderer-frameCount-expected.txt:
+    * inspector/canvas/recording-bitmaprenderer-full-expected.txt:
+    * inspector/canvas/recording-bitmaprenderer-memoryLimit-expected.txt:
+    * inspector/canvas/recording-html-2d-expected.txt:
+    * inspector/canvas/recording-webgl-frameCount-expected.txt:
+    * inspector/canvas/recording-webgl-full-expected.txt:
+    * inspector/canvas/recording-webgl-memoryLimit-expected.txt:
+    * inspector/canvas/recording-webgl-snapshots-expected.txt:
+    * inspector/canvas/recording-webgl2-frameCount-expected.txt:
+    * inspector/canvas/recording-webgl2-full-expected.txt:
+    * inspector/canvas/recording-webgl2-memoryLimit-expected.txt:
+    * inspector/canvas/recording-webgl2-snapshots-expected.txt:
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282984 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-09-23  Devin Rousso  <[email protected]>
+
+            Web Inspector: Graphics: add instrumentation for new `CanvasRenderingContext2DSettings`
+            https://bugs.webkit.org/show_bug.cgi?id=225180
+            <rdar://problem/77587429>
+
+            Reviewed by BJ Burg.
+
+            * inspector/protocol/Canvas.json:
+            Add `colorSpace` and `desynchronized` to `Canvas.ContextAttributes`.
+
 2021-10-18  Russell Epstein  <[email protected]>
 
         Cherry-pick r284348. rdar://problem/84398090

Modified: branches/safari-612-branch/Source/_javascript_Core/inspector/protocol/Canvas.json (284962 => 284963)


--- branches/safari-612-branch/Source/_javascript_Core/inspector/protocol/Canvas.json	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/Source/_javascript_Core/inspector/protocol/Canvas.json	2021-10-27 22:47:37 UTC (rev 284963)
@@ -39,6 +39,8 @@
             "description": "Drawing surface attributes.",
             "properties": [
                 { "name": "alpha", "type": "boolean", "optional": true, "description": "WebGL, WebGL2, ImageBitmapRenderingContext" },
+                { "name": "colorSpace", "type": "string", "optional": true, "description": "2D" },
+                { "name": "desynchronized", "type": "boolean", "optional": true, "description": "2D" },
                 { "name": "depth", "type": "boolean", "optional": true, "description": "WebGL, WebGL2" },
                 { "name": "stencil", "type": "boolean", "optional": true, "description": "WebGL, WebGL2" },
                 { "name": "antialias", "type": "boolean", "optional": true, "description": "WebGL, WebGL2" },

Modified: branches/safari-612-branch/Source/WebCore/ChangeLog (284962 => 284963)


--- branches/safari-612-branch/Source/WebCore/ChangeLog	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/Source/WebCore/ChangeLog	2021-10-27 22:47:37 UTC (rev 284963)
@@ -1462,6 +1462,67 @@
             (WebCore::IntersectionObserver::isReachableFromOpaqueRoots const):
             * page/IntersectionObserver.h:
 
+2021-10-25  Null  <[email protected]>
+
+        Cherry-pick r282984. rdar://problem/77587429
+
+    Web Inspector: Graphics: add instrumentation for new `CanvasRenderingContext2DSettings`
+    https://bugs.webkit.org/show_bug.cgi?id=225180
+    <rdar://problem/77587429>
+    
+    Reviewed by BJ Burg.
+    
+    Source/_javascript_Core:
+    
+    * inspector/protocol/Canvas.json:
+    Add `colorSpace` and `desynchronized` to `Canvas.ContextAttributes`.
+    
+    Source/WebCore:
+    
+    * inspector/InspectorCanvas.cpp:
+    (WebCore::buildObjectForCanvasContextAttributes): Added.
+    (WebCore::InspectorCanvas::buildObjectForCanvas):
+    (WebCore::InspectorCanvas::buildInitialState):
+    Unify the two cases where we fetch canvas attributes into a single method so that both get
+    the same data. This means that the canvas recorder now also uses `Canvas.ContextAttributes`.
+    
+    LayoutTests:
+    
+    * inspector/canvas/context-attributes-expected.txt:
+    * inspector/canvas/recording-2d-frameCount-expected.txt:
+    * inspector/canvas/recording-2d-full-expected.txt:
+    * inspector/canvas/recording-2d-memoryLimit-expected.txt:
+    * inspector/canvas/recording-bitmaprenderer-frameCount-expected.txt:
+    * inspector/canvas/recording-bitmaprenderer-full-expected.txt:
+    * inspector/canvas/recording-bitmaprenderer-memoryLimit-expected.txt:
+    * inspector/canvas/recording-html-2d-expected.txt:
+    * inspector/canvas/recording-webgl-frameCount-expected.txt:
+    * inspector/canvas/recording-webgl-full-expected.txt:
+    * inspector/canvas/recording-webgl-memoryLimit-expected.txt:
+    * inspector/canvas/recording-webgl-snapshots-expected.txt:
+    * inspector/canvas/recording-webgl2-frameCount-expected.txt:
+    * inspector/canvas/recording-webgl2-full-expected.txt:
+    * inspector/canvas/recording-webgl2-memoryLimit-expected.txt:
+    * inspector/canvas/recording-webgl2-snapshots-expected.txt:
+    
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@282984 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2021-09-23  Devin Rousso  <[email protected]>
+
+            Web Inspector: Graphics: add instrumentation for new `CanvasRenderingContext2DSettings`
+            https://bugs.webkit.org/show_bug.cgi?id=225180
+            <rdar://problem/77587429>
+
+            Reviewed by BJ Burg.
+
+            * inspector/InspectorCanvas.cpp:
+            (WebCore::buildObjectForCanvasContextAttributes): Added.
+            (WebCore::InspectorCanvas::buildObjectForCanvas):
+            (WebCore::InspectorCanvas::buildInitialState):
+            Unify the two cases where we fetch canvas attributes into a single method so that both get
+            the same data. This means that the canvas recorder now also uses `Canvas.ContextAttributes`.
+
 2021-10-22  Alan Coon  <[email protected]>
 
         Cherry-pick r283952. rdar://problem/84558050

Modified: branches/safari-612-branch/Source/WebCore/inspector/InspectorCanvas.cpp (284962 => 284963)


--- branches/safari-612-branch/Source/WebCore/inspector/InspectorCanvas.cpp	2021-10-27 22:21:01 UTC (rev 284962)
+++ branches/safari-612-branch/Source/WebCore/inspector/InspectorCanvas.cpp	2021-10-27 22:47:37 UTC (rev 284963)
@@ -813,6 +813,67 @@
     return m_frameCount && m_framesCaptured >= m_frameCount.value();
 }
 
+static RefPtr<Inspector::Protocol::Canvas::ContextAttributes> buildObjectForCanvasContextAttributes(CanvasRenderingContext& context)
+{
+    if (is<CanvasRenderingContext2D>(context)) {
+        auto attributes = downcast<CanvasRenderingContext2D>(context).getContextAttributes();
+        auto contextAttributesPayload = Inspector::Protocol::Canvas::ContextAttributes::create()
+            .release();
+        switch (attributes.colorSpace) {
+        case PredefinedColorSpace::SRGB:
+            contextAttributesPayload->setColorSpace("srgb"_s);
+            break;
+
+#if ENABLE(PREDEFINED_COLOR_SPACE_DISPLAY_P3)
+        case PredefinedColorSpace::DisplayP3:
+            contextAttributesPayload->setColorSpace("display-p3"_s);
+            break;
+#endif
+        }
+        contextAttributesPayload->setDesynchronized(attributes.desynchronized);
+        return contextAttributesPayload;
+    }
+
+    if (is<ImageBitmapRenderingContext>(context)) {
+        auto contextAttributesPayload = Inspector::Protocol::Canvas::ContextAttributes::create()
+            .release();
+        contextAttributesPayload->setAlpha(downcast<ImageBitmapRenderingContext>(context).hasAlpha());
+        return contextAttributesPayload;
+    }
+
+#if ENABLE(WEBGL)
+    if (is<WebGLRenderingContextBase>(context)) {
+        const auto& attributes = downcast<WebGLRenderingContextBase>(context).getContextAttributes();
+        if (!attributes)
+            return nullptr;
+
+        auto contextAttributesPayload = Inspector::Protocol::Canvas::ContextAttributes::create()
+            .release();
+        contextAttributesPayload->setAlpha(attributes->alpha);
+        contextAttributesPayload->setDepth(attributes->depth);
+        contextAttributesPayload->setStencil(attributes->stencil);
+        contextAttributesPayload->setAntialias(attributes->antialias);
+        contextAttributesPayload->setPremultipliedAlpha(attributes->premultipliedAlpha);
+        contextAttributesPayload->setPreserveDrawingBuffer(attributes->preserveDrawingBuffer);
+        switch (attributes->powerPreference) {
+        case WebGLPowerPreference::Default:
+            contextAttributesPayload->setPowerPreference("default"_s);
+            break;
+        case WebGLPowerPreference::LowPower:
+            contextAttributesPayload->setPowerPreference("low-power"_s);
+            break;
+        case WebGLPowerPreference::HighPerformance:
+            contextAttributesPayload->setPowerPreference("high-performance"_s);
+            break;
+        }
+        contextAttributesPayload->setFailIfMajorPerformanceCaveat(attributes->failIfMajorPerformanceCaveat);
+        return contextAttributesPayload;
+    }
+#endif // ENABLE(WEBGL)
+
+    return nullptr;
+}
+
 Ref<Protocol::Canvas::Canvas> InspectorCanvas::buildObjectForCanvas(bool captureBacktrace)
 {
     using ContextTypeType = std::optional<Protocol::Canvas::ContextType>;
@@ -856,45 +917,9 @@
         // FIXME: <https://webkit.org/b/178282> Web Inspector: send a DOM node with each Canvas payload and eliminate Canvas.requestNode
     }
 
-    using ContextAttributesType = RefPtr<Protocol::Canvas::ContextAttributes>;
     auto contextAttributes = WTF::switchOn(m_context,
-        [] (std::reference_wrapper<CanvasRenderingContext> contextWrapper) -> ContextAttributesType {
-            auto& context = contextWrapper.get();
-            if (is<ImageBitmapRenderingContext>(context)) {
-                auto contextAttributesPayload = Protocol::Canvas::ContextAttributes::create()
-                    .release();
-                contextAttributesPayload->setAlpha(downcast<ImageBitmapRenderingContext>(context).hasAlpha());
-                return contextAttributesPayload;
-            }
-
-#if ENABLE(WEBGL)
-            if (is<WebGLRenderingContextBase>(context)) {
-                if (const auto& attributes = downcast<WebGLRenderingContextBase>(context).getContextAttributes()) {
-                    auto contextAttributesPayload = Protocol::Canvas::ContextAttributes::create()
-                        .release();
-                    contextAttributesPayload->setAlpha(attributes->alpha);
-                    contextAttributesPayload->setDepth(attributes->depth);
-                    contextAttributesPayload->setStencil(attributes->stencil);
-                    contextAttributesPayload->setAntialias(attributes->antialias);
-                    contextAttributesPayload->setPremultipliedAlpha(attributes->premultipliedAlpha);
-                    contextAttributesPayload->setPreserveDrawingBuffer(attributes->preserveDrawingBuffer);
-                    switch (attributes->powerPreference) {
-                    case WebGLPowerPreference::Default:
-                        contextAttributesPayload->setPowerPreference("default");
-                        break;
-                    case WebGLPowerPreference::LowPower:
-                        contextAttributesPayload->setPowerPreference("low-power");
-                        break;
-                    case WebGLPowerPreference::HighPerformance:
-                        contextAttributesPayload->setPowerPreference("high-performance");
-                        break;
-                    }
-                    contextAttributesPayload->setFailIfMajorPerformanceCaveat(attributes->failIfMajorPerformanceCaveat);
-                    return contextAttributesPayload;
-                }
-            }
-#endif
-            return nullptr;
+        [] (std::reference_wrapper<CanvasRenderingContext> contextWrapper) {
+            return buildObjectForCanvasContextAttributes(contextWrapper);
         },
         [] (Monostate) {
             ASSERT_NOT_REACHED();
@@ -1229,23 +1254,10 @@
             statesPayload->addItem(WTFMove(statePayload));
         }
     }
-#if ENABLE(WEBGL)
-    else if (is<WebGLRenderingContextBase>(context)) {
-        auto& contextWebGLBase = downcast<WebGLRenderingContextBase>(*context);
-        if (std::optional<WebGLContextAttributes> webGLContextAttributes = contextWebGLBase.getContextAttributes()) {
-            auto webGLContextAttributesPayload = JSON::Object::create();
-            webGLContextAttributesPayload->setBoolean("alpha"_s, webGLContextAttributes->alpha);
-            webGLContextAttributesPayload->setBoolean("depth"_s, webGLContextAttributes->depth);
-            webGLContextAttributesPayload->setBoolean("stencil"_s, webGLContextAttributes->stencil);
-            webGLContextAttributesPayload->setBoolean("antialias"_s, webGLContextAttributes->antialias);
-            webGLContextAttributesPayload->setBoolean("premultipliedAlpha"_s, webGLContextAttributes->premultipliedAlpha);
-            webGLContextAttributesPayload->setBoolean("preserveDrawingBuffer"_s, webGLContextAttributes->preserveDrawingBuffer);
-            webGLContextAttributesPayload->setBoolean("failIfMajorPerformanceCaveat"_s, webGLContextAttributes->failIfMajorPerformanceCaveat);
-            parametersPayload->addItem(WTFMove(webGLContextAttributesPayload));
-        }
-    }
-#endif
 
+    if (auto contextAttributes = buildObjectForCanvasContextAttributes(*context))
+        parametersPayload->addItem(contextAttributes.releaseNonNull());
+
     initialStatePayload->setAttributes(WTFMove(attributesPayload));
 
     if (statesPayload->length())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to