Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions docs/DevFlow/spec/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,6 @@ WebView endpoints also accept `contextId`; query values override the JSON body's
JSON object. `/webview/screenshot` returns PNG, trying the registered native
element before the CDP screenshot fallback.

`/api/v1/webview/network` is an existing HTTP 200 alias of
`/api/v1/network/requests`: it reads the native .NET HTTP capture store, not browser
fetch/XHR traffic. It does not associate requests with a WebView context.

## Streaming payloads

There is no universal `{ type, timestamp, data }` wire envelope. Network and log
Expand Down
2 changes: 1 addition & 1 deletion docs/DevFlow/spec/examples/capabilities-maui-response.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
},
"webview": {
"version": 1,
"features": ["evaluate", "contexts", "source", "dom", "dom-query", "network", "console", "screenshot"]
"features": ["evaluate", "contexts", "source", "dom", "dom-query", "console", "screenshot"]
},
"network": {
"version": 1,
Expand Down
46 changes: 0 additions & 46 deletions docs/DevFlow/spec/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1469,52 +1469,6 @@ paths:
"500":
$ref: "#/components/responses/InternalError"

/api/v1/webview/network:
get:
operationId: getWebViewNetworkRequests
tags: [webview]
summary: List captured native .NET network requests
description: >
Convenience alias for `/api/v1/network/requests`. Returns captured HTTP
requests from the same native .NET network store, optionally filtered
by host, method, or status code. It does not capture browser fetch/XHR
traffic or filter requests by WebView context.
parameters:
- name: limit
in: query
description: Maximum number of requests to return.
schema:
type: integer
minimum: 1
- name: host
in: query
description: Filter by host name.
schema:
type: string
- name: method
in: query
description: Filter by HTTP method.
schema:
type: string
- name: status
in: query
description: Filter by status code.
schema:
type: integer
minimum: 100
maximum: 599
responses:
"200":
description: Array of network request summaries.
content:
application/json:
schema:
type: array
items:
$ref: "./schemas/network.json#/$defs/NetworkRequestSummary"
"500":
$ref: "#/components/responses/InternalError"

/api/v1/webview/console:
get:
operationId: getWebViewConsoleLogs
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -558,7 +558,6 @@ private static void RegisterWebViewEndpoints(WebApplication app)
app.MapGet("/api/v1/webview/source", () => Results.Content(MockAgentResponses.WebViewSource, "text/html"));
app.MapGet("/api/v1/webview/dom", () => Results.Content("""{"root":{"tag":"html"}}""", "application/json"));
app.MapGet("/api/v1/webview/dom/query", () => Results.Content("""{"matches":[{"tag":"div","id":"app"}]}""", "application/json"));
app.MapGet("/api/v1/webview/network", () => Results.Content("""{"entries":[]}""", "application/json"));
app.MapGet("/api/v1/webview/console", () => Results.Content("""{"entries":[]}""", "application/json"));
app.MapGet("/api/v1/webview/screenshot", () => Results.File(MockAgentResponses.ScreenshotPng, "image/png"));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,6 @@ protected void RegisterRoutes()
_server.MapPost("/api/v1/webview/input/click", request => ExecuteUiMutationAsync(request, HandleWebViewInputClick));
_server.MapPost("/api/v1/webview/input/fill", request => ExecuteUiMutationAsync(request, HandleWebViewInputFill));
_server.MapPost("/api/v1/webview/input/text", request => ExecuteUiMutationAsync(request, HandleWebViewInputText));
_server.MapGet("/api/v1/webview/network", HandleWebViewNetwork);
_server.MapGet("/api/v1/webview/console", HandleWebViewConsole);
_server.MapGet("/api/v1/webview/screenshot", HandleWebViewScreenshot);

Expand Down Expand Up @@ -2217,9 +2216,6 @@ protected async Task<HttpResponse> HandleWebViewDomQuery(HttpRequest request)
}
}

protected Task<HttpResponse> HandleWebViewNetwork(HttpRequest request)
=> HandleNetworkList(request);

protected Task<HttpResponse> HandleWebViewConsole(HttpRequest request)
{
request.QueryParams["source"] = "webview";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ private Task<HttpResponse> HandleCapabilities(HttpRequest request)
// Listed unconditionally so clients can discover the group and see *why* it is unavailable,
// per the capability protocol: unsupported groups report supported:false rather than vanish.
capabilities["webview"] = Capability(1, cdpWebViews.Length > 0,
["evaluate", "contexts", "source", "dom", "dom-query", "network", "console", "screenshot"],
["evaluate", "contexts", "source", "dom", "dom-query", "console", "screenshot"],
"No WebView has registered a CDP endpoint with this agent.");

capabilities["profiler"] = Capability(1, IsProfilerFeatureAvailable, BuildProfilerFeatureList(), "Profiler collector is unavailable on this platform.");
Expand Down
Loading