@@ -24,6 +24,7 @@ const css = @import("../../browser/dom/css.zig");
2424const parser = @import ("../../browser/netsurf.zig" );
2525const dom_node = @import ("../../browser/dom/node.zig" );
2626const Element = @import ("../../browser/dom/element.zig" ).Element ;
27+ const dump = @import ("../../browser/dump.zig" );
2728
2829pub fn processMessage (cmd : anytype ) ! void {
2930 const action = std .meta .stringToEnum (enum {
@@ -41,6 +42,7 @@ pub fn processMessage(cmd: anytype) !void {
4142 getBoxModel ,
4243 requestChildNodes ,
4344 getFrameOwner ,
45+ getOuterHTML ,
4446 }, cmd .input .action ) orelse return error .UnknownMethod ;
4547
4648 switch (action ) {
@@ -58,6 +60,7 @@ pub fn processMessage(cmd: anytype) !void {
5860 .getBoxModel = > return getBoxModel (cmd ),
5961 .requestChildNodes = > return requestChildNodes (cmd ),
6062 .getFrameOwner = > return getFrameOwner (cmd ),
63+ .getOuterHTML = > return getOuterHTML (cmd ),
6164 }
6265}
6366
@@ -494,6 +497,27 @@ fn getFrameOwner(cmd: anytype) !void {
494497 return cmd .sendResult (.{ .nodeId = node .id , .backendNodeId = node .id }, .{});
495498}
496499
500+ fn getOuterHTML (cmd : anytype ) ! void {
501+ const params = (try cmd .params (struct {
502+ nodeId : ? Node.Id = null ,
503+ backendNodeId : ? Node.Id = null ,
504+ objectId : ? []const u8 = null ,
505+ includeShadowDOM : bool = false ,
506+ })) orelse return error .InvalidParams ;
507+
508+ if (params .includeShadowDOM ) {
509+ log .warn (.cdp , "not implemented" , .{ .feature = "DOM.getOuterHTML: Not implemented includeShadowDOM parameter" });
510+ }
511+ const bc = cmd .browser_context orelse return error .BrowserContextNotLoaded ;
512+
513+ const node = try getNode (cmd .arena , bc , params .nodeId , params .backendNodeId , params .objectId );
514+
515+ var aw = std .Io .Writer .Allocating .init (cmd .arena );
516+ try dump .writeNode (node ._node , .{}, & aw .writer );
517+
518+ return cmd .sendResult (.{ .outerHTML = aw .written () }, .{});
519+ }
520+
497521const testing = @import ("../testing.zig" );
498522
499523test "cdp.dom: getSearchResults unknown search id" {
0 commit comments