Title: [295232] trunk
Revision
295232
Author
drou...@apple.com
Date
2022-06-03 14:08:41 -0700 (Fri, 03 Jun 2022)

Log Message

Web Inspector: drop InspectorAdditionsEnabled in favor of new methods on InspectorFrontendhost
https://bugs.webkit.org/show_bug.cgi?id=241192

Reviewed by Patrick Angle.

This removes custom things from standardized IDLs and allows custom functionality necessary for Web
Inspector to be kept inside inspector objects (as well as the fact that `InspectorFrontendHost` is
guaranteed to exist, so there's no concern about this functionality not being available).

* Source/WTF/Scripts/Preferences/WebPreferences.yaml:
* Source/WebCore/page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setInspectorAdditionsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inspectorAdditionsEnabled const): Deleted.
* Source/WebKit/UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetInspectorAdditionsEnabled): Deleted.
(WKPreferencesGetInspectorAdditionsEnabled): Deleted.
* Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:
* Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::enableFrontendFeatures):
* Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h:
* Source/WebKitLegacy/mac/WebView/WebPreferences.mm:
(-[WebPreferences inspectorAdditionsEnabled]): Deleted.
(-[WebPreferences setInspectorAdditionsEnabled:]): Deleted.
* Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h:
* Source/WebKitLegacy/win/Interfaces/IWebPreferencesPrivate.idl:
* Source/WebKitLegacy/win/WebPreferenceKeysPrivate.h:
* Source/WebKitLegacy/win/WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::inspectorAdditionsEnabled): Deleted.
(WebPreferences::setInspectorAdditionsEnabled): Deleted.
* Source/WebKitLegacy/win/WebPreferences.h:
* Source/WebKitLegacy/win/WebView.cpp:
(WebView::notifyPreferencesChanged):
* Tools/DumpRenderTree/TestOptions.cpp:
(WTR::TestOptions::defaults):
Remove all things related to `InspectorAdditionsEnabled`.

* Source/WebCore/html/canvas/CanvasPath.idl:
* Source/WebCore/html/canvas/CanvasRenderingContext2D.idl:
* Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.idl:
Remove nonstandard functionality gated by `InspectorAdditionsEnabled` in standardized IDLs.

* Source/WebCore/inspector/InspectorFrontendHost.h:
* Source/WebCore/inspector/InspectorFrontendHost.idl:
* Source/WebCore/inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::getPath const): Added.
(WebCore::InspectorFrontendHost::getCurrentX const): Added.
(WebCore::InspectorFrontendHost::getCurrentY const): Added.
(WebCore::InspectorFrontendHost::setPath const): Added.
* Source/WebInspectorUI/UserInterface/Base/IDLExtensions.js: Added.
(File.prototype.getPath): Added.
(CanvasRenderingContext2D.prototype.currentX): Added.
(CanvasRenderingContext2D.prototype.currentY): Added.
(CanvasRenderingContext2D.prototype.getPath): Added.
(CanvasRenderingContext2D.prototype.setPath): Added.
Centralize all custom IDL extensions in a new file with the same name so it's very easy to find.

* Source/WebInspectorUI/UserInterface/Base/ImageUtilities.js:
(WI.ImageUtilities.supportsCanvasPathDebugging): Deleted.
* Source/WebInspectorUI/UserInterface/Models/RecordingAction.js:
(WI.RecordingAction.prototype.process):
* Source/WebInspectorUI/UserInterface/Models/RecordingState.js:
(WI.RecordingState.prototype.fromContext):
* Source/WebInspectorUI/UserInterface/Views/RecordingContentView.js:
(WI.RecordingContentView):
(WI.RecordingContentView.prototype.get navigationItems):
(WI.RecordingContentView.prototype.attached):
(WI.RecordingContentView.prototype._generateContentCanvas2D):
* Source/WebInspectorUI/UserInterface/Views/ResourceContentView.js:
(WI.ResourceContentView.prototype.async _handleMapLocalResourceOverrideToFile):
Remove checks based on `InspectorAdditionsEnabled` (technically they check for the existence of the
custom functionality on the builtin prototype, but that's added based on `InspectorAdditionsEnabled`).

* Source/WebInspectorUI/UserInterface/Main.html:
* Source/WebInspectorUI/UserInterface/Test.html:

* LayoutTests/fast/canvas/2d.currentPoint.html: Removed.
* LayoutTests/fast/canvas/2d.currentPoint-expected.txt: Removed.
* LayoutTests/fast/canvas/2d.getPath.modification.html: Removed.
* LayoutTests/fast/canvas/2d.getPath.modification-expected.txt: Removed.
* LayoutTests/fast/canvas/2d.getPath.newobject.html: Removed.
* LayoutTests/fast/canvas/2d.getPath.newobject-expected.txt: Removed.
* LayoutTests/fast/canvas/2d.setPath.html: Removed.
* LayoutTests/fast/canvas/2d.setPath-expected.txt: Removed.
* LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/getPath.html: Added.
* LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/getPath-expected.txt: Added.
* LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentX.html: Added.
* LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentX-expected.txt: Added.
* LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentY.html: Added.
* LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentY-expected.txt: Added.
* LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/setPath.html: Added.
* LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/setPath-expected.txt: Added.

Canonical link: https://commits.webkit.org/251287@main

Modified Paths

Added Paths

Removed Paths

Diff

Deleted: trunk/LayoutTests/fast/canvas/2d.currentPoint-expected.txt (295231 => 295232)


--- trunk/LayoutTests/fast/canvas/2d.currentPoint-expected.txt	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/LayoutTests/fast/canvas/2d.currentPoint-expected.txt	2022-06-03 21:08:41 UTC (rev 295232)
@@ -1,31 +0,0 @@
-The test to ensure that currentX/currentY of Path2D works as expected.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS ctx.currentX is 0
-PASS ctx.currentY is 0
-PASS ctx.currentX is 1
-PASS ctx.currentY is 2
-PASS ctx.currentX is 3
-PASS ctx.currentY is 4
-PASS ctx.currentX is 7
-PASS ctx.currentY is 8
-PASS ctx.currentX is 13
-PASS ctx.currentY is 14
-PASS ctx.currentX is 15
-PASS ctx.currentY is 16
-PASS ctx.currentX is 1
-PASS ctx.currentY is 2
-PASS ctx.currentX is 20
-PASS ctx.currentY is 21
-PASS ctx.currentX is 23
-PASS ctx.currentY is 23
-PASS ctx.currentX is 25
-PASS ctx.currentY is 25
-PASS ctx.currentX is 0
-PASS ctx.currentY is 0
-PASS successfullyParsed is true
-
-TEST COMPLETE
-

Deleted: trunk/LayoutTests/fast/canvas/2d.currentPoint.html (295231 => 295232)


--- trunk/LayoutTests/fast/canvas/2d.currentPoint.html	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/LayoutTests/fast/canvas/2d.currentPoint.html	2022-06-03 21:08:41 UTC (rev 295232)
@@ -1,53 +0,0 @@
-<!DOCTYPE html><!-- webkit-test-runner [ InspectorAdditionsEnabled=true ] -->
-<html>
-<head>
-<script src=""
-</head>
-<body>
-<script>
-description("The test to ensure that currentX/currentY of Path2D works as expected.");
-
-var ctx = document.createElement("canvas").getContext("2d");
-
-function shouldHaveCurrentPointEqualTo(x, y) {
-    shouldEvaluateTo("ctx.currentX", x);
-    shouldEvaluateTo("ctx.currentY", y);
-}
-
-shouldHaveCurrentPointEqualTo(0, 0);
-
-ctx.moveTo(1, 2);
-shouldHaveCurrentPointEqualTo(1, 2);
-
-ctx.lineTo(3, 4);
-shouldHaveCurrentPointEqualTo(3, 4);
-
-ctx.quadraticCurveTo(5, 6, 7, 8);
-shouldHaveCurrentPointEqualTo(7, 8);
-
-ctx.bezierCurveTo(9, 10, 11, 12, 13, 14);
-shouldHaveCurrentPointEqualTo(13, 14);
-
-ctx.arcTo(15, 16, 17, 18, 19);
-shouldHaveCurrentPointEqualTo(15, 16);
-
-ctx.closePath();
-shouldHaveCurrentPointEqualTo(1, 2);
-
-ctx.rect(20, 21, 1, 1);
-shouldHaveCurrentPointEqualTo(20, 21);
-
-ctx.arc(22, 23, 1, 0, 2 * Math.PI);
-shouldHaveCurrentPointEqualTo(23, 23);
-
-ctx.ellipse(24, 25, 1, 1, 0, 0, 2 * Math.PI);
-shouldHaveCurrentPointEqualTo(25, 25);
-
-ctx.beginPath();
-shouldHaveCurrentPointEqualTo(0, 0);
-
-</script>
-<script src=""
-</body>
-</html>
-

Deleted: trunk/LayoutTests/fast/canvas/2d.getPath.modification-expected.txt (295231 => 295232)


--- trunk/LayoutTests/fast/canvas/2d.getPath.modification-expected.txt	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/LayoutTests/fast/canvas/2d.getPath.modification-expected.txt	2022-06-03 21:08:41 UTC (rev 295232)
@@ -1,17 +0,0 @@
-The test to ensure that modifying the result of getPath doesn't affect the context.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS copiedPath.currentX is 0
-PASS copiedPath.currentY is 0
-PASS newPath.currentX is 1
-PASS newPath.currentY is 1
-PASS modifiedPath.currentX is 2
-PASS modifiedPath.currentY is 2
-PASS ctx1Path.currentX is ctx2Path.currentX
-PASS ctx1Path.currentY is ctx2Path.currentY
-PASS successfullyParsed is true
-
-TEST COMPLETE
-

Deleted: trunk/LayoutTests/fast/canvas/2d.getPath.modification.html (295231 => 295232)


--- trunk/LayoutTests/fast/canvas/2d.getPath.modification.html	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/LayoutTests/fast/canvas/2d.getPath.modification.html	2022-06-03 21:08:41 UTC (rev 295232)
@@ -1,40 +0,0 @@
-<!DOCTYPE html><!-- webkit-test-runner [ InspectorAdditionsEnabled=true ] -->
-<html>
-<head>
-<script src=""
-</head>
-<body>
-<script>
-description("The test to ensure that modifying the result of getPath doesn't affect the context.");
-
-function shouldHaveCurrentPointEqualTo(path, expected) {
-    shouldEvaluateTo(path + ".currentX", expected[0]);
-    shouldEvaluateTo(path + ".currentY", expected[1]);
-}
-
-var ctx1 = document.createElement("canvas").getContext("2d");
-
-var copiedPath = ctx1.getPath();
-ctx1.moveTo(1, 1);
-shouldHaveCurrentPointEqualTo("copiedPath", [0, 0]);
-
-copiedPath.moveTo(2, 2);
-var newPath = ctx1.getPath();
-shouldHaveCurrentPointEqualTo("newPath", [1, 1]);
-
-ctx1.setPath(copiedPath);
-var modifiedPath = ctx1.getPath();
-shouldHaveCurrentPointEqualTo("modifiedPath", [2, 2]);
-
-var ctx2 = document.createElement("canvas").getContext("2d");
-ctx2.moveTo(2, 2);
-
-var ctx1Path = ctx1.getPath();
-var ctx2Path = ctx2.getPath();
-shouldBe("ctx1Path.currentX", "ctx2Path.currentX");
-shouldBe("ctx1Path.currentY", "ctx2Path.currentY");
-
-</script>
-<script src=""
-</body>
-</html>

Deleted: trunk/LayoutTests/fast/canvas/2d.getPath.newobject-expected.txt (295231 => 295232)


--- trunk/LayoutTests/fast/canvas/2d.getPath.newobject-expected.txt	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/LayoutTests/fast/canvas/2d.getPath.newobject-expected.txt	2022-06-03 21:08:41 UTC (rev 295232)
@@ -1,12 +0,0 @@
-The test to ensure that each call to getPath returns a new object.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS path1 is not path2
-PASS path1.currentX is path2.currentX
-PASS path1.currentY is path2.currentY
-PASS successfullyParsed is true
-
-TEST COMPLETE
-

Deleted: trunk/LayoutTests/fast/canvas/2d.getPath.newobject.html (295231 => 295232)


--- trunk/LayoutTests/fast/canvas/2d.getPath.newobject.html	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/LayoutTests/fast/canvas/2d.getPath.newobject.html	2022-06-03 21:08:41 UTC (rev 295232)
@@ -1,21 +0,0 @@
-<!DOCTYPE html><!-- webkit-test-runner [ InspectorAdditionsEnabled=true ] -->
-<html>
-<head>
-<script src=""
-</head>
-<body>
-<script>
-description("The test to ensure that each call to getPath returns a new object.");
-
-var ctx = document.createElement("canvas").getContext("2d");
-var path1 = ctx.getPath();
-var path2 = ctx.getPath();
-
-shouldNotBe("path1", "path2");
-shouldBe("path1.currentX", "path2.currentX");
-shouldBe("path1.currentY", "path2.currentY");
-
-</script>
-<script src=""
-</body>
-</html>

Deleted: trunk/LayoutTests/fast/canvas/2d.setPath-expected.txt (295231 => 295232)


--- trunk/LayoutTests/fast/canvas/2d.setPath-expected.txt	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/LayoutTests/fast/canvas/2d.setPath-expected.txt	2022-06-03 21:08:41 UTC (rev 295232)
@@ -1,15 +0,0 @@
-The test to ensure that calling setPath with a Path2D works as expected.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS originalPath.currentX is 0
-PASS originalPath.currentY is 0
-PASS newPathFromPath2D.currentX is 1
-PASS newPathFromPath2D.currentY is 2
-PASS newPathFromEmptyPath2D.currentX is 0
-PASS newPathFromEmptyPath2D.currentY is 0
-PASS successfullyParsed is true
-
-TEST COMPLETE
-

Deleted: trunk/LayoutTests/fast/canvas/2d.setPath.html (295231 => 295232)


--- trunk/LayoutTests/fast/canvas/2d.setPath.html	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/LayoutTests/fast/canvas/2d.setPath.html	2022-06-03 21:08:41 UTC (rev 295232)
@@ -1,34 +0,0 @@
-<!DOCTYPE html><!-- webkit-test-runner [ InspectorAdditionsEnabled=true ] -->
-<html>
-<head>
-<script src=""
-</head>
-<body>
-<script>
-description("The test to ensure that calling setPath with a Path2D works as expected.");
-
-function shouldHaveCurrentPointEqualTo(path, expected) {
-    shouldEvaluateTo(path + ".currentX", expected[0]);
-    shouldEvaluateTo(path + ".currentY", expected[1]);
-}
-
-var ctx = document.createElement("canvas").getContext("2d");
-var originalPath = ctx.getPath();
-shouldHaveCurrentPointEqualTo("originalPath", [0, 0]);
-
-ctx.beginPath();
-ctx.setPath(new Path2D("M 1 2"));
-var newPathFromPath2D = ctx.getPath();
-shouldHaveCurrentPointEqualTo("newPathFromPath2D", [1, 2]);
-
-ctx.beginPath();
-ctx.moveTo(1, 2);
-ctx.setPath(new Path2D);
-var newPathFromEmptyPath2D = ctx.getPath();
-shouldHaveCurrentPointEqualTo("newPathFromEmptyPath2D", [0, 0]);
-
-</script>
-<script src=""
-</body>
-</html>
-

Added: trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/getPath-expected.txt (0 => 295232)


--- trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/getPath-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/getPath-expected.txt	2022-06-03 21:08:41 UTC (rev 295232)
@@ -0,0 +1,13 @@
+Test that the IDL extensions for CanvasRenderingContext2D work correctly.
+
+
+== Running test suite: IDLExtensions.CanvasRenderingContext2D
+-- Running test case: IDLExtensions.CanvasRenderingContext2D.getPath.Isolated
+PASS: Should not modify X after getting path.
+PASS: Should not modify Y after getting path.
+PASS: Should not modify X after moving copied path.
+PASS: Should not modify Y after moving copied path.
+
+-- Running test case: IDLExtensions.CanvasRenderingContext2D.getPath.NewObject
+PASS: Should not return the same object twice.
+

Added: trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/getPath.html (0 => 295232)


--- trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/getPath.html	                        (rev 0)
+++ trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/getPath.html	2022-06-03 21:08:41 UTC (rev 295232)
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+<script>
+function test() {
+    let suite = InspectorTest.createSyncSuite("IDLExtensions.CanvasRenderingContext2D");
+
+    suite.addTestCase({
+        name: "IDLExtensions.CanvasRenderingContext2D.getPath.Isolated",
+        description: "Ensure that Path2D returned by getPath are isolated from the CanvasRenderingContext2D.",
+        test() {
+            let context = document.createElement("canvas").getContext("2d");
+            InspectorTest.assert(context.currentX === 0);
+            InspectorTest.assert(context.currentY === 0);
+
+            let copiedPath = context.getPath();
+            InspectorTest.expectEqual(context.currentX, 0, "Should not modify X after getting path.");
+            InspectorTest.expectEqual(context.currentY, 0, "Should not modify Y after getting path.");
+
+            copiedPath.moveTo(1, 1);
+            InspectorTest.expectEqual(context.currentX, 0, "Should not modify X after moving copied path.");
+            InspectorTest.expectEqual(context.currentY, 0, "Should not modify Y after moving copied path.");
+        },
+    });
+
+    suite.addTestCase({
+        name: "IDLExtensions.CanvasRenderingContext2D.getPath.NewObject",
+        description: "Ensure that Path2D returned by getPath are always a new object.",
+        test() {
+            let context = document.createElement("canvas").getContext("2d");
+
+            let path1 = context.getPath();
+            let path2 = context.getPath();
+
+            InspectorTest.expectNotEqual(path1, path2, "Should not return the same object twice.");
+        },
+    });
+
+    suite.runTestCasesAndFinish();
+}
+</script>
+</head>
+<body _onload_="runTest()">
+    <p>Test that the IDL extensions for CanvasRenderingContext2D work correctly.</p>
+</body>
+</html>

Added: trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentX-expected.txt (0 => 295232)


--- trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentX-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentX-expected.txt	2022-06-03 21:08:41 UTC (rev 295232)
@@ -0,0 +1,17 @@
+Test that the IDL extensions for CanvasRenderingContext2D work correctly.
+
+
+== Running test suite: IDLExtensions.CanvasRenderingContext2D
+-- Running test case: IDLExtensions.CanvasRenderingContext2D.get currentX
+PASS: Should match at start.
+PASS: Should match after moveTo.
+PASS: Should match after lineTo.
+PASS: Should match after quadraticCurveTo.
+PASS: Should match after bezierCurveTo.
+PASS: Should match after arcTo.
+PASS: Should match after closePath.
+PASS: Should match after rect.
+PASS: Should match after arc.
+PASS: Should match after ellipse.
+PASS: Should match after beginPath.
+

Added: trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentX.html (0 => 295232)


--- trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentX.html	                        (rev 0)
+++ trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentX.html	2022-06-03 21:08:41 UTC (rev 295232)
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+<script>
+function test() {
+    let suite = InspectorTest.createSyncSuite("IDLExtensions.CanvasRenderingContext2D");
+
+    suite.addTestCase({
+        name: "IDLExtensions.CanvasRenderingContext2D.get currentX",
+        test() {
+            let context = document.createElement("canvas").getContext("2d");
+            InspectorTest.expectEqual(context.currentX, 0, "Should match at start.");
+
+            context.moveTo(1, 2);
+            InspectorTest.expectEqual(context.currentX, 1, "Should match after moveTo.");
+
+            context.lineTo(3, 4);
+            InspectorTest.expectEqual(context.currentX, 3, "Should match after lineTo.");
+
+            context.quadraticCurveTo(5, 6, 7, 8);
+            InspectorTest.expectEqual(context.currentX, 7, "Should match after quadraticCurveTo.");
+
+            context.bezierCurveTo(9, 10, 11, 12, 13, 14);
+            InspectorTest.expectEqual(context.currentX, 13, "Should match after bezierCurveTo.");
+
+            context.arcTo(15, 16, 17, 18, 19);
+            InspectorTest.expectEqual(context.currentX, 15, "Should match after arcTo.");
+
+            context.closePath();
+            InspectorTest.expectEqual(context.currentX, 1, "Should match after closePath.");
+
+            context.rect(20, 21, 1, 1);
+            InspectorTest.expectEqual(context.currentX, 20, "Should match after rect.");
+
+            context.arc(22, 23, 1, 0, 2 * Math.PI);
+            InspectorTest.expectEqual(context.currentX, 23, "Should match after arc.");
+
+            context.ellipse(24, 25, 1, 1, 0, 0, 2 * Math.PI);
+            InspectorTest.expectEqual(context.currentX, 25, "Should match after ellipse.");
+
+            context.beginPath();
+            InspectorTest.expectEqual(context.currentX, 0, "Should match after beginPath.");
+        },
+    });
+
+    suite.runTestCasesAndFinish();
+}
+</script>
+</head>
+<body _onload_="runTest()">
+    <p>Test that the IDL extensions for CanvasRenderingContext2D work correctly.</p>
+</body>
+</html>

Added: trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentY-expected.txt (0 => 295232)


--- trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentY-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentY-expected.txt	2022-06-03 21:08:41 UTC (rev 295232)
@@ -0,0 +1,17 @@
+Test that the IDL extensions for CanvasRenderingContext2D work correctly.
+
+
+== Running test suite: IDLExtensions.CanvasRenderingContext2D
+-- Running test case: IDLExtensions.CanvasRenderingContext2D.get currentY
+PASS: Should match at start.
+PASS: Should match after moveTo.
+PASS: Should match after lineTo.
+PASS: Should match after quadraticCurveTo.
+PASS: Should match after bezierCurveTo.
+PASS: Should match after arcTo.
+PASS: Should match after closePath.
+PASS: Should match after rect.
+PASS: Should match after arc.
+PASS: Should match after ellipse.
+PASS: Should match after beginPath.
+

Added: trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentY.html (0 => 295232)


--- trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentY.html	                        (rev 0)
+++ trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentY.html	2022-06-03 21:08:41 UTC (rev 295232)
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+<script>
+function test() {
+    let suite = InspectorTest.createSyncSuite("IDLExtensions.CanvasRenderingContext2D");
+
+    suite.addTestCase({
+        name: "IDLExtensions.CanvasRenderingContext2D.get currentY",
+        test() {
+            let context = document.createElement("canvas").getContext("2d");
+            InspectorTest.expectEqual(context.currentY, 0, "Should match at start.");
+
+            context.moveTo(1, 2);
+            InspectorTest.expectEqual(context.currentY, 2, "Should match after moveTo.");
+
+            context.lineTo(3, 4);
+            InspectorTest.expectEqual(context.currentY, 4, "Should match after lineTo.");
+
+            context.quadraticCurveTo(5, 6, 7, 8);
+            InspectorTest.expectEqual(context.currentY, 8, "Should match after quadraticCurveTo.");
+
+            context.bezierCurveTo(9, 10, 11, 12, 13, 14);
+            InspectorTest.expectEqual(context.currentY, 14, "Should match after bezierCurveTo.");
+
+            context.arcTo(15, 16, 17, 18, 19);
+            InspectorTest.expectEqual(context.currentY, 16, "Should match after arcTo.");
+
+            context.closePath();
+            InspectorTest.expectEqual(context.currentY, 2, "Should match after closePath.");
+
+            context.rect(20, 21, 1, 1);
+            InspectorTest.expectEqual(context.currentY, 21, "Should match after rect.");
+
+            context.arc(22, 23, 1, 0, 2 * Math.PI);
+            InspectorTest.expectEqual(context.currentY, 23, "Should match after arc.");
+
+            context.ellipse(24, 25, 1, 1, 0, 0, 2 * Math.PI);
+            InspectorTest.expectEqual(context.currentY, 25, "Should match after ellipse.");
+
+            context.beginPath();
+            InspectorTest.expectEqual(context.currentY, 0, "Should match after beginPath.");
+        },
+    });
+
+    suite.runTestCasesAndFinish();
+}
+</script>
+</head>
+<body _onload_="runTest()">
+    <p>Test that the IDL extensions for CanvasRenderingContext2D work correctly.</p>
+</body>
+</html>

Added: trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/setPath-expected.txt (0 => 295232)


--- trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/setPath-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/setPath-expected.txt	2022-06-03 21:08:41 UTC (rev 295232)
@@ -0,0 +1,10 @@
+Test that the IDL extensions for CanvasRenderingContext2D work correctly.
+
+
+== Running test suite: IDLExtensions.CanvasRenderingContext2D
+-- Running test case: IDLExtensions.CanvasRenderingContext2D.setPath
+PASS: Should modify X after setting new path.
+PASS: Should modify Y after setting new path.
+PASS: Should modify X after setting empty path.
+PASS: Should modify Y after setting empty path.
+

Added: trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/setPath.html (0 => 295232)


--- trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/setPath.html	                        (rev 0)
+++ trunk/LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/setPath.html	2022-06-03 21:08:41 UTC (rev 295232)
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script src=""
+<script>
+function test() {
+    let suite = InspectorTest.createSyncSuite("IDLExtensions.CanvasRenderingContext2D");
+
+    suite.addTestCase({
+        name: "IDLExtensions.CanvasRenderingContext2D.setPath",
+        test() {
+            let context = document.createElement("canvas").getContext("2d");
+            InspectorTest.assert(context.currentX === 0);
+            InspectorTest.assert(context.currentY === 0);
+
+            context.setPath(new Path2D("M 1 2"));
+            InspectorTest.expectEqual(context.currentX, 1, "Should modify X after setting new path.");
+            InspectorTest.expectEqual(context.currentY, 2, "Should modify Y after setting new path.");
+
+            context.setPath(new Path2D);
+            InspectorTest.expectEqual(context.currentX, 0, "Should modify X after setting empty path.");
+            InspectorTest.expectEqual(context.currentY, 0, "Should modify Y after setting empty path.");
+        },
+    });
+
+    suite.runTestCasesAndFinish();
+}
+</script>
+</head>
+<body _onload_="runTest()">
+    <p>Test that the IDL extensions for CanvasRenderingContext2D work correctly.</p>
+</body>
+</html>

Modified: trunk/LayoutTests/platform/win/TestExpectations (295231 => 295232)


--- trunk/LayoutTests/platform/win/TestExpectations	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/LayoutTests/platform/win/TestExpectations	2022-06-03 21:08:41 UTC (rev 295232)
@@ -3852,10 +3852,6 @@
 
 # FIXME: create bugs to track the following failures:
 accessibility/add-children-pseudo-element.html [ Failure ]
-fast/canvas/2d.currentPoint.html [ Failure ]
-fast/canvas/2d.getPath.modification.html [ Failure ]
-fast/canvas/2d.getPath.newobject.html [ Failure ]
-fast/canvas/2d.setPath.html [ Failure ]
 fast/forms/file/entries-api/drag-folder-webkitEntries.html [ Failure ]
 fast/forms/file/entries-api/webkitdirectory-drag-folder-webkitEntries.html [ Failure ]
 fast/forms/file/entries-api/webkitdirectory-drag-folder.html [ Failure ]

Modified: trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml (295231 => 295232)


--- trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WTF/Scripts/Preferences/WebPreferences.yaml	2022-06-03 21:08:41 UTC (rev 295232)
@@ -935,17 +935,6 @@
       "PLATFORM(IOS_FAMILY)": true
       default: false
 
-InspectorAdditionsEnabled:
-  type: bool
-  humanReadableName: "Web Inspector Additions"
-  humanReadableDescription: "Enable additional page APIs used by the Web Inspector frontend page"
-  webcoreBinding: RuntimeEnabledFeatures
-  defaultValue:
-    WebKitLegacy:
-      default: false
-    WebKit:
-      default: false
-
 InspectorAttachedHeight:
   type: uint32_t
   webcoreBinding: none

Modified: trunk/Source/WebCore/html/canvas/CanvasPath.idl (295231 => 295232)


--- trunk/Source/WebCore/html/canvas/CanvasPath.idl	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebCore/html/canvas/CanvasPath.idl	2022-06-03 21:08:41 UTC (rev 295232)
@@ -40,7 +40,4 @@
     undefined roundRect(unrestricted double x, unrestricted double y, unrestricted double w, unrestricted double h, (unrestricted double or DOMPointInit) radii);
     undefined arc(unrestricted double x, unrestricted double y, unrestricted double radius, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false);
     undefined ellipse(unrestricted double x, unrestricted double y, unrestricted double radiusX, unrestricted double radiusY, unrestricted double rotation, unrestricted double startAngle, unrestricted double endAngle, optional boolean anticlockwise = false);
-
-    [EnabledAtRuntime=InspectorAdditionsEnabled] readonly attribute float currentX;
-    [EnabledAtRuntime=InspectorAdditionsEnabled] readonly attribute float currentY;
 };

Modified: trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.idl (295231 => 295232)


--- trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.idl	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebCore/html/canvas/CanvasRenderingContext2D.idl	2022-06-03 21:08:41 UTC (rev 295232)
@@ -72,10 +72,6 @@
     undefined setShadow(unrestricted float width, unrestricted float height, unrestricted float blur, unrestricted float grayLevel, optional unrestricted float alpha = 1);
     undefined setShadow(unrestricted float width, unrestricted float height, unrestricted float blur, unrestricted float r, unrestricted float g, unrestricted float b, unrestricted float a);
     undefined clearShadow();
-
-    // Inspector-only.
-    [EnabledAtRuntime=InspectorAdditionsEnabled] undefined setPath(Path2D path);
-    [EnabledAtRuntime=InspectorAdditionsEnabled, NewObject] Path2D getPath();
 };
 
 CanvasRenderingContext2D includes CanvasState;

Modified: trunk/Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.idl (295231 => 295232)


--- trunk/Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.idl	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.idl	2022-06-03 21:08:41 UTC (rev 295232)
@@ -37,11 +37,6 @@
 ] interface OffscreenCanvasRenderingContext2D {
     readonly attribute OffscreenCanvas canvas;
     undefined commit();
-
-    // Inspector-only.
-    // FIXME: OffscreenCanvas.
-    // [EnabledAtRuntime=InspectorAdditionsEnabled] undefined setPath(Path2D path);
-    // [EnabledAtRuntime=InspectorAdditionsEnabled, NewObject] Path2D getPath();
 };
 
 OffscreenCanvasRenderingContext2D includes CanvasState;

Modified: trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp (295231 => 295232)


--- trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebCore/inspector/InspectorFrontendHost.cpp	2022-06-03 21:08:41 UTC (rev 295232)
@@ -30,6 +30,7 @@
 #include "config.h"
 #include "InspectorFrontendHost.h"
 
+#include "CanvasRenderingContext2D.h"
 #include "CertificateInfo.h"
 #include "ColorConversion.h"
 #include "ColorSerialization.h"
@@ -61,6 +62,7 @@
 #include "Page.h"
 #include "PagePasteboardContext.h"
 #include "Pasteboard.h"
+#include "Path2D.h"
 #include "ScriptController.h"
 #include "Settings.h"
 #include "SystemSoundManager.h"
@@ -535,11 +537,6 @@
 {
 }
 
-String InspectorFrontendHost::getPath(const File& file)
-{
-    return file.path();
-}
-
 void InspectorFrontendHost::sendMessageToBackend(const String& message)
 {
     if (m_client)
@@ -818,5 +815,29 @@
 
 #endif // ENABLE(INSPECTOR_EXTENSIONS)
 
+String InspectorFrontendHost::getPath(const File& file) const
+{
+    return file.path();
+}
 
+float InspectorFrontendHost::getCurrentX(const CanvasRenderingContext2D& context) const
+{
+    return context.currentX();
+}
+
+float InspectorFrontendHost::getCurrentY(const CanvasRenderingContext2D& context) const
+{
+    return context.currentY();
+}
+
+Ref<Path2D> InspectorFrontendHost::getPath(const CanvasRenderingContext2D& context) const
+{
+    return context.getPath();
+}
+
+void InspectorFrontendHost::setPath(CanvasRenderingContext2D& context, Path2D& path) const
+{
+    context.setPath(path);
+}
+
 } // namespace WebCore

Modified: trunk/Source/WebCore/inspector/InspectorFrontendHost.h (295231 => 295232)


--- trunk/Source/WebCore/inspector/InspectorFrontendHost.h	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebCore/inspector/InspectorFrontendHost.h	2022-06-03 21:08:41 UTC (rev 295232)
@@ -37,6 +37,8 @@
 
 namespace WebCore {
 
+class CanvasPath;
+class CanvasRenderingContext2D;
 class DOMWrapperWorld;
 class DeferredPromise;
 class Event;
@@ -45,6 +47,7 @@
 class HTMLIFrameElement;
 class InspectorFrontendClient;
 class Page;
+class Path2D;
 
 class InspectorFrontendHost : public RefCounted<InspectorFrontendHost> {
 public:
@@ -119,8 +122,6 @@
     bool canPickColorFromScreen();
     void pickColorFromScreen(Ref<DeferredPromise>&&);
 
-    String getPath(const File&);
-
     struct ContextMenuItem {
         String type;
         String label;
@@ -157,6 +158,15 @@
     ExceptionOr<JSC::JSValue> evaluateScriptInExtensionTab(HTMLIFrameElement& extensionFrame, const String& scriptSource);
 #endif
 
+    // IDL extensions.
+
+    String getPath(const File&) const;
+
+    float getCurrentX(const CanvasRenderingContext2D&) const;
+    float getCurrentY(const CanvasRenderingContext2D&) const;
+    Ref<Path2D> getPath(const CanvasRenderingContext2D&) const;
+    void setPath(CanvasRenderingContext2D&, Path2D&) const;
+
 private:
 #if ENABLE(CONTEXT_MENUS)
     friend class FrontendMenuProvider;

Modified: trunk/Source/WebCore/inspector/InspectorFrontendHost.idl (295231 => 295232)


--- trunk/Source/WebCore/inspector/InspectorFrontendHost.idl	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebCore/inspector/InspectorFrontendHost.idl	2022-06-03 21:08:41 UTC (rev 295232)
@@ -82,8 +82,6 @@
     boolean canPickColorFromScreen();
     [NewObject] Promise<DOMString> pickColorFromScreen();
 
-    DOMString getPath(File file);
-
     readonly attribute DOMString port;
     readonly attribute DOMString platform;
     readonly attribute DOMString platformVersionName;
@@ -109,6 +107,15 @@
     [Conditional=INSPECTOR_EXTENSIONS] undefined didNavigateExtensionTab(DOMString extensionID, DOMString extensionTabID, DOMString newURL);
     [Conditional=INSPECTOR_EXTENSIONS] undefined inspectedPageDidNavigate(DOMString newURL);
     [Conditional=INSPECTOR_EXTENSIONS] any evaluateScriptInExtensionTab(HTMLIFrameElement extensionFrame, DOMString scriptSource);
+
+    // IDL extensions.
+
+    DOMString getPath(File file);
+
+    float getCurrentX(CanvasRenderingContext2D context);
+    float getCurrentY(CanvasRenderingContext2D context);
+    [NewObject] Path2D getPath(CanvasRenderingContext2D context);
+    undefined setPath(CanvasRenderingContext2D context, Path2D path);
 };
 
 dictionary ContextMenuItem {

Modified: trunk/Source/WebCore/page/RuntimeEnabledFeatures.h (295231 => 295232)


--- trunk/Source/WebCore/page/RuntimeEnabledFeatures.h	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebCore/page/RuntimeEnabledFeatures.h	2022-06-03 21:08:41 UTC (rev 295232)
@@ -78,9 +78,6 @@
     bool fetchAPIKeepAliveEnabled() const { return m_fetchAPIKeepAliveEnabled; }
     void setFetchAPIKeepAliveEnabled(bool isEnabled) { m_fetchAPIKeepAliveEnabled = isEnabled; }
 
-    void setInspectorAdditionsEnabled(bool isEnabled) { m_inspectorAdditionsEnabled = isEnabled; }
-    bool inspectorAdditionsEnabled() const { return m_inspectorAdditionsEnabled; }
-
 #if ENABLE(WEBXR)
     void setWebXREnabled(bool isEnabled) { m_webXREnabled = isEnabled; }
     bool webXREnabled() const { return m_webXREnabled; }
@@ -273,7 +270,6 @@
     bool m_isCacheAPIEnabled { false };
     bool m_isWebSocketEnabled { true };
     bool m_fetchAPIKeepAliveEnabled { false };
-    bool m_inspectorAdditionsEnabled { false };
 #if ENABLE(WEBXR)
     bool m_webXREnabled { false };
 #endif

Added: trunk/Source/WebInspectorUI/UserInterface/Base/IDLExtensions.js (0 => 295232)


--- trunk/Source/WebInspectorUI/UserInterface/Base/IDLExtensions.js	                        (rev 0)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/IDLExtensions.js	2022-06-03 21:08:41 UTC (rev 295232)
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2022 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+// The following should only be used for response local override file mapping.
+
+Object.defineProperty(File.prototype, "getPath", {
+    value() {
+        return InspectorFrontendHost.getPath(this);
+    },
+});
+
+// The following should only be used for rendering (and interacting with) canvas 2D recordings.
+
+Object.defineProperty(CanvasRenderingContext2D.prototype, "currentX", {
+    get() {
+        return InspectorFrontendHost.getCurrentX(this);
+    },
+});
+
+Object.defineProperty(CanvasRenderingContext2D.prototype, "currentY", {
+    get() {
+        return InspectorFrontendHost.getCurrentY(this);
+    },
+});
+
+Object.defineProperty(CanvasRenderingContext2D.prototype, "getPath", {
+    value() {
+        return InspectorFrontendHost.getPath(this);
+    },
+});
+
+Object.defineProperty(CanvasRenderingContext2D.prototype, "setPath", {
+    value(path) {
+        return InspectorFrontendHost.setPath(this, path);
+    },
+});

Modified: trunk/Source/WebInspectorUI/UserInterface/Base/ImageUtilities.js (295231 => 295232)


--- trunk/Source/WebInspectorUI/UserInterface/Base/ImageUtilities.js	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/ImageUtilities.js	2022-06-03 21:08:41 UTC (rev 295232)
@@ -126,14 +126,6 @@
         });
         return image;
     }
-
-    static supportsCanvasPathDebugging()
-    {
-        return "getPath" in CanvasRenderingContext2D.prototype
-            && "setPath" in CanvasRenderingContext2D.prototype
-            && "currentX" in CanvasRenderingContext2D.prototype
-            && "currentY" in CanvasRenderingContext2D.prototype;
-    }
 };
 
 WI.ImageUtilities._scratchContext2D = null;

Modified: trunk/Source/WebInspectorUI/UserInterface/Main.html (295231 => 295232)


--- trunk/Source/WebInspectorUI/UserInterface/Main.html	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebInspectorUI/UserInterface/Main.html	2022-06-03 21:08:41 UTC (rev 295232)
@@ -335,6 +335,8 @@
     <script src=""
     <script src=""
 
+    <script src=""
+
     <script src=""
     <script src=""
     <script src=""

Modified: trunk/Source/WebInspectorUI/UserInterface/Models/RecordingAction.js (295231 => 295232)


--- trunk/Source/WebInspectorUI/UserInterface/Models/RecordingAction.js	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/RecordingAction.js	2022-06-03 21:08:41 UTC (rev 295232)
@@ -320,16 +320,14 @@
                 }
             }
 
-            if (WI.ImageUtilities.supportsCanvasPathDebugging()) {
-                let currentX = currentState.get("currentX");
-                let invalidX = (currentX < 0 || currentX >= context.canvas.width) && (!lastState || currentX !== lastState.get("currentX"));
+            let currentX = currentState.get("currentX");
+            let invalidX = (currentX < 0 || currentX >= context.canvas.width) && (!lastState || currentX !== lastState.get("currentX"));
 
-                let currentY = currentState.get("currentY");
-                let invalidY = (currentY < 0 || currentY >= context.canvas.height) && (!lastState || currentY !== lastState.get("currentY"));
+            let currentY = currentState.get("currentY");
+            let invalidY = (currentY < 0 || currentY >= context.canvas.height) && (!lastState || currentY !== lastState.get("currentY"));
 
-                if (invalidX || invalidY)
-                    this._warning = WI.UIString("This action moves the path outside the visible area");
-            }
+            if (invalidX || invalidY)
+                this._warning = WI.UIString("This action moves the path outside the visible area");
         }
     }
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Models/RecordingState.js (295231 => 295232)


--- trunk/Source/WebInspectorUI/UserInterface/Models/RecordingState.js	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebInspectorUI/UserInterface/Models/RecordingState.js	2022-06-03 21:08:41 UTC (rev 295232)
@@ -42,11 +42,6 @@
 
         let data = ""
 
-        if (WI.ImageUtilities.supportsCanvasPathDebugging()) {
-            data.currentX = context.currentX;
-            data.currentY = context.currentY;
-        }
-
         data.direction = context.direction;
         data.fillStyle = context.fillStyle;
         data.font = context.font;
@@ -72,8 +67,9 @@
         data.webkitLineDash = context.webkitLineDash;
         data.webkitLineDashOffset = context.webkitLineDashOffset;
 
-        if (WI.ImageUtilities.supportsCanvasPathDebugging())
-            data.setPath = [context.getPath()];
+        data.currentX = context.currentX;
+        data.currentY = context.currentY;
+        data.setPath = [context.getPath()];
 
         return new WI.RecordingState(data, options);
     }

Modified: trunk/Source/WebInspectorUI/UserInterface/Test.html (295231 => 295232)


--- trunk/Source/WebInspectorUI/UserInterface/Test.html	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebInspectorUI/UserInterface/Test.html	2022-06-03 21:08:41 UTC (rev 295232)
@@ -67,6 +67,8 @@
     <script src=""
     <script src=""
 
+    <script src=""
+
     <script src=""
     <script src=""
     <script src=""

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/RecordingContentView.js (295231 => 295232)


--- trunk/Source/WebInspectorUI/UserInterface/Views/RecordingContentView.js	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/RecordingContentView.js	2022-06-03 21:08:41 UTC (rev 295232)
@@ -50,7 +50,7 @@
         this.element.classList.add("recording", this.representedObject.type);
 
         if (isCanvas2D || isCanvasBitmapRenderer || isCanvasWebGL || isCanvasWebGL2) {
-            if (isCanvas2D && WI.ImageUtilities.supportsCanvasPathDebugging()) {
+            if (isCanvas2D) {
                 this._pathContext = null;
 
                 this._showPathButtonNavigationItem = new WI.ActivateButtonNavigationItem("show-path", WI.UIString("Show Path"), WI.UIString("Hide Path"), "Images/Path.svg", 16, 16);
@@ -83,7 +83,7 @@
             return [];
 
         let navigationItems = [this._exportButtonNavigationItem, new WI.DividerNavigationItem];
-        if (isCanvas2D && WI.ImageUtilities.supportsCanvasPathDebugging())
+        if (isCanvas2D)
             navigationItems.push(this._showPathButtonNavigationItem);
 
         navigationItems.push(this._showGridButtonNavigationItem);
@@ -128,7 +128,7 @@
         let isCanvasWebGL = this.representedObject.type === WI.Recording.Type.CanvasWebGL;
         let isCanvasWebGL2 = this.representedObject.type === WI.Recording.Type.CanvasWebGL2;
         if (isCanvas2D || isCanvasBitmapRenderer || isCanvasWebGL || isCanvasWebGL2) {
-            if (isCanvas2D && WI.ImageUtilities.supportsCanvasPathDebugging())
+            if (isCanvas2D)
                 this._updateCanvasPath();
             this._updateImageGrid();
         }
@@ -235,7 +235,6 @@
         let snapshotIndex = Math.floor(index / WI.RecordingContentView.SnapshotInterval);
         let snapshot = this._snapshots[snapshotIndex];
 
-        let showCanvasPath = WI.ImageUtilities.supportsCanvasPathDebugging() && WI.settings.showCanvasPath.value;
         let indexOfLastBeginPathAction = Infinity;
 
         let actions = this.representedObject.actions;
@@ -273,7 +272,7 @@
                 actions[i].apply(snapshot.context);
             }
 
-            if (showCanvasPath && indexOfLastBeginPathAction <= to) {
+            if (WI.settings.showCanvasPath.value && indexOfLastBeginPathAction <= to) {
                 if (!this._pathContext) {
                     let pathCanvas = document.createElement("canvas");
                     pathCanvas.classList.add("path");
@@ -390,7 +389,7 @@
 
         this._previewContainer.removeChildren();
 
-        if (showCanvasPath) {
+        if (WI.settings.showCanvasPath.value) {
             indexOfLastBeginPathAction = this._index;
             while (indexOfLastBeginPathAction > snapshot.index && actions[indexOfLastBeginPathAction].name !== "beginPath")
                 --indexOfLastBeginPathAction;

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/ResourceContentView.js (295231 => 295232)


--- trunk/Source/WebInspectorUI/UserInterface/Views/ResourceContentView.js	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/ResourceContentView.js	2022-06-03 21:08:41 UTC (rev 295232)
@@ -387,7 +387,7 @@
         WI.FileUtilities.import((files) => {
             console.assert(files.length === 1, files);
 
-            this.resource.mappedFilePath = InspectorFrontendHost.getPath(files[0]);
+            this.resource.mappedFilePath = files[0].getPath();
         });
     }
 

Modified: trunk/Source/WebKit/UIProcess/API/C/WKPreferences.cpp (295231 => 295232)


--- trunk/Source/WebKit/UIProcess/API/C/WKPreferences.cpp	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebKit/UIProcess/API/C/WKPreferences.cpp	2022-06-03 21:08:41 UTC (rev 295232)
@@ -1755,16 +1755,6 @@
     return toImpl(preferencesRef)->setAllowMediaContentTypesRequiringHardwareSupportAsFallback(allow);
 }
 
-void WKPreferencesSetInspectorAdditionsEnabled(WKPreferencesRef preferencesRef, bool flag)
-{
-    toImpl(preferencesRef)->setInspectorAdditionsEnabled(flag);
-}
-
-bool WKPreferencesGetInspectorAdditionsEnabled(WKPreferencesRef preferencesRef)
-{
-    return toImpl(preferencesRef)->inspectorAdditionsEnabled();
-}
-
 void WKPreferencesSetStorageAccessAPIEnabled(WKPreferencesRef preferencesRef, bool flag)
 {
     toImpl(preferencesRef)->setStorageAccessAPIEnabled(flag);

Modified: trunk/Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h (295231 => 295232)


--- trunk/Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h	2022-06-03 21:08:41 UTC (rev 295232)
@@ -495,10 +495,6 @@
 WK_EXPORT WKStringRef WKPreferencesCopyMediaContentTypesRequiringHardwareSupport(WKPreferencesRef);
 
 // Defaults to false.
-WK_EXPORT void WKPreferencesSetInspectorAdditionsEnabled(WKPreferencesRef, bool flag);
-WK_EXPORT bool WKPreferencesGetInspectorAdditionsEnabled(WKPreferencesRef);
-
-// Defaults to false.
 WK_EXPORT void WKPreferencesSetStorageAccessAPIEnabled(WKPreferencesRef, bool flag);
 WK_EXPORT bool WKPreferencesGetStorageAccessAPIEnabled(WKPreferencesRef);
 

Modified: trunk/Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp (295231 => 295232)


--- trunk/Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp	2022-06-03 21:08:41 UTC (rev 295232)
@@ -56,7 +56,6 @@
 void WebInspectorUI::enableFrontendFeatures(WebPage& page)
 {
     // FIXME: These should be enabled in the UIProcess by the preferences for the inspector page's WKWebView.
-    RuntimeEnabledFeatures::sharedFeatures().setInspectorAdditionsEnabled(true);
     RuntimeEnabledFeatures::sharedFeatures().setImageBitmapEnabled(true);
 #if ENABLE(WEBGL2)
     page.corePage()->settings().setWebGL2Enabled(true);

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h (295231 => 295232)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h	2022-06-03 21:08:41 UTC (rev 295232)
@@ -234,7 +234,6 @@
 #define WebKitEncryptedMediaAPIEnabledKey @"WebKitEncryptedMediaAPIEnabled"
 #define WebKitPictureInPictureAPIEnabledKey @"WebKitPictureInPictureAPIEnabled"
 #define WebKitAllowMediaContentTypesRequiringHardwareSupportAsFallbackKey @"WebKitAllowMediaContentTypesRequiringHardwareSupportAsFallback"
-#define WebKitInspectorAdditionsEnabledPreferenceKey @"WebKitInspectorAdditionsEnabled"
 #define WebKitMediaCapabilitiesEnabledPreferenceKey @"WebKitMediaCapabilitiesEnabled"
 #define WebKitCSSLogicalEnabledPreferenceKey @"WebKitCSSLogicalEnabled"
 #define WebKitLineHeightUnitsEnabledPreferenceKey @"WebKitLineHeightUnitsEnabled"

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm (295231 => 295232)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferences.mm	2022-06-03 21:08:41 UTC (rev 295232)
@@ -2809,16 +2809,6 @@
     [self _setBoolValue:flag forKey:WebKitAllowMediaContentTypesRequiringHardwareSupportAsFallbackKey];
 }
 
-- (BOOL)inspectorAdditionsEnabled
-{
-    return [self _boolValueForKey:WebKitInspectorAdditionsEnabledPreferenceKey];
-}
-
-- (void)setInspectorAdditionsEnabled:(BOOL)flag
-{
-    [self _setBoolValue:flag forKey:WebKitInspectorAdditionsEnabledPreferenceKey];
-}
-
 - (BOOL)mediaCapabilitiesEnabled
 {
     return [self _boolValueForKey:WebKitMediaCapabilitiesEnabledPreferenceKey];

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h (295231 => 295232)


--- trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h	2022-06-03 21:08:41 UTC (rev 295232)
@@ -246,7 +246,6 @@
 @property (nonatomic) BOOL constantPropertiesEnabled;
 @property (nonatomic) BOOL colorFilterEnabled;
 @property (nonatomic) BOOL punchOutWhiteBackgroundsInDarkMode;
-@property (nonatomic) BOOL inspectorAdditionsEnabled;
 @property (nonatomic) BOOL allowMediaContentTypesRequiringHardwareSupportAsFallback;
 @property (nonatomic) BOOL mediaCapabilitiesEnabled;
 @property (nonatomic) BOOL sourceBufferChangeTypeEnabled;

Modified: trunk/Source/WebKitLegacy/win/Interfaces/IWebPreferencesPrivate.idl (295231 => 295232)


--- trunk/Source/WebKitLegacy/win/Interfaces/IWebPreferencesPrivate.idl	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebKitLegacy/win/Interfaces/IWebPreferencesPrivate.idl	2022-06-03 21:08:41 UTC (rev 295232)
@@ -211,8 +211,6 @@
 {
     HRESULT dataTransferItemsEnabled([out, retval] BOOL*);
     HRESULT setDataTransferItemsEnabled([in] BOOL enabled);
-    HRESULT inspectorAdditionsEnabled([out, retval] BOOL*);
-    HRESULT setInspectorAdditionsEnabled([in] BOOL enabled);
     HRESULT visualViewportAPIEnabled([out, retval] BOOL*);
     HRESULT setVisualViewportAPIEnabled([in] BOOL enabled);
     HRESULT CSSOMViewScrollingAPIEnabled([out, retval] BOOL*);

Modified: trunk/Source/WebKitLegacy/win/WebPreferenceKeysPrivate.h (295231 => 295232)


--- trunk/Source/WebKitLegacy/win/WebPreferenceKeysPrivate.h	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebKitLegacy/win/WebPreferenceKeysPrivate.h	2022-06-03 21:08:41 UTC (rev 295232)
@@ -199,8 +199,6 @@
 
 #define WebKitDataTransferItemsEnabledPreferenceKey "WebKitDataTransferItemsEnabled"
 
-#define WebKitInspectorAdditionsEnabledPreferenceKey "WebKitInspectorAdditionsEnabled"
-
 #define WebKitVisualViewportAPIEnabledPreferenceKey "WebKitVisualViewportAPIEnabled"
 
 #define WebKitServerTimingEnabledPreferenceKey "WebKitServerTimingEnabled"

Modified: trunk/Source/WebKitLegacy/win/WebPreferences.cpp (295231 => 295232)


--- trunk/Source/WebKitLegacy/win/WebPreferences.cpp	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebKitLegacy/win/WebPreferences.cpp	2022-06-03 21:08:41 UTC (rev 295232)
@@ -340,8 +340,6 @@
 
     CFDictionaryAddValue(defaults.get(), CFSTR(WebKitDataTransferItemsEnabledPreferenceKey), kCFBooleanFalse);
 
-    CFDictionaryAddValue(defaults.get(), CFSTR(WebKitInspectorAdditionsEnabledPreferenceKey), kCFBooleanFalse);
-
     CFDictionaryAddValue(defaults.get(), CFSTR(WebKitVisualViewportAPIEnabledPreferenceKey), kCFBooleanFalse);
 
     CFDictionaryAddValue(defaults.get(), CFSTR(WebKitCSSOMViewScrollingAPIEnabledPreferenceKey), kCFBooleanFalse);
@@ -2216,20 +2214,6 @@
     return S_OK;
 }
 
-HRESULT WebPreferences::inspectorAdditionsEnabled(_Out_ BOOL* enabled)
-{
-    if (!enabled)
-        return E_POINTER;
-    *enabled = boolValueForKey(WebKitInspectorAdditionsEnabledPreferenceKey);
-    return S_OK;
-}
-
-HRESULT WebPreferences::setInspectorAdditionsEnabled(BOOL enabled)
-{
-    setBoolValue(WebKitInspectorAdditionsEnabledPreferenceKey, enabled);
-    return S_OK;
-}
-
 HRESULT WebPreferences::visualViewportAPIEnabled(_Out_ BOOL* enabled)
 {
     if (!enabled)

Modified: trunk/Source/WebKitLegacy/win/WebPreferences.h (295231 => 295232)


--- trunk/Source/WebKitLegacy/win/WebPreferences.h	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebKitLegacy/win/WebPreferences.h	2022-06-03 21:08:41 UTC (rev 295232)
@@ -255,8 +255,6 @@
     // IWebPreferencesPrivate6
     virtual HRESULT STDMETHODCALLTYPE dataTransferItemsEnabled(_Out_ BOOL*);
     virtual HRESULT STDMETHODCALLTYPE setDataTransferItemsEnabled(BOOL);
-    virtual HRESULT STDMETHODCALLTYPE inspectorAdditionsEnabled(_Out_ BOOL*);
-    virtual HRESULT STDMETHODCALLTYPE setInspectorAdditionsEnabled(BOOL);
     virtual HRESULT STDMETHODCALLTYPE visualViewportAPIEnabled(_Out_ BOOL*);
     virtual HRESULT STDMETHODCALLTYPE setVisualViewportAPIEnabled(BOOL);
     virtual HRESULT STDMETHODCALLTYPE CSSOMViewScrollingAPIEnabled(_Out_ BOOL*);

Modified: trunk/Source/WebKitLegacy/win/WebView.cpp (295231 => 295232)


--- trunk/Source/WebKitLegacy/win/WebView.cpp	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Source/WebKitLegacy/win/WebView.cpp	2022-06-03 21:08:41 UTC (rev 295232)
@@ -5053,11 +5053,6 @@
         return hr;
     settings.setDataTransferItemsEnabled(!!enabled);
 
-    hr = prefsPrivate->inspectorAdditionsEnabled(&enabled);
-    if (FAILED(hr))
-        return hr;
-    RuntimeEnabledFeatures::sharedFeatures().setInspectorAdditionsEnabled(!!enabled);
-
     hr = prefsPrivate->webSQLEnabled(&enabled);
     if (FAILED(hr))
         return hr;

Modified: trunk/Tools/DumpRenderTree/TestOptions.cpp (295231 => 295232)


--- trunk/Tools/DumpRenderTree/TestOptions.cpp	2022-06-03 21:06:04 UTC (rev 295231)
+++ trunk/Tools/DumpRenderTree/TestOptions.cpp	2022-06-03 21:08:41 UTC (rev 295232)
@@ -145,7 +145,6 @@
             { "DOMPasteAllowed", true },
             { "DeveloperExtrasEnabled", true },
             { "HiddenPageDOMTimerThrottlingEnabled", false },
-            { "InspectorAdditionsEnabled", false },
             { "IntersectionObserverEnabled", false },
             { "_javascript_CanAccessClipboard", true },
             { "_javascript_CanOpenWindowsAutomatically", true },
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to