diff --git a/src/ArenaPool.zig b/src/ArenaPool.zig index a48e00a7..7c931df6 100644 --- a/src/ArenaPool.zig +++ b/src/ArenaPool.zig @@ -18,6 +18,7 @@ const std = @import("std"); const builtin = @import("builtin"); +const log = @import("log.zig"); const Allocator = std.mem.Allocator; const ArenaAllocator = std.heap.ArenaAllocator; @@ -62,7 +63,7 @@ pub fn deinit(self: *ArenaPool) void { var it = self._leak_track.iterator(); while (it.next()) |kv| { if (kv.value_ptr.* != 0) { - std.debug.print("ArenaPool leak detected: '{s}' count={d}\n", .{ kv.key_ptr.*, kv.value_ptr.* }); + log.err(.bug, "ArenaPool leak", .{.name = kv.key_ptr.*, .count = kv.value_ptr.* }); has_leaks = true; } } @@ -129,11 +130,11 @@ pub fn release(self: *ArenaPool, allocator: Allocator) void { if (self._leak_track.getPtr(entry.debug)) |count| { count.* -= 1; if (count.* < 0) { - std.debug.print("ArenaPool double-free detected: '{s}'\n", .{entry.debug}); + log.err(.bug, "ArenaPool double-free", .{.name = entry.debug}); @panic("ArenaPool: double-free detected"); } } else { - std.debug.print("ArenaPool release of untracked arena: '{s}'\n", .{entry.debug}); + log.err(.bug, "ArenaPool release unknown", .{.name = entry.debug}); @panic("ArenaPool: release of untracked arena"); } } diff --git a/src/Server.zig b/src/Server.zig index a12dc563..e824d4e1 100644 --- a/src/Server.zig +++ b/src/Server.zig @@ -22,7 +22,6 @@ const net = std.net; const posix = std.posix; const Allocator = std.mem.Allocator; -const ArenaAllocator = std.heap.ArenaAllocator; const log = @import("log.zig"); const App = @import("App.zig"); diff --git a/src/browser/Browser.zig b/src/browser/Browser.zig index 50a7c037..cecda783 100644 --- a/src/browser/Browser.zig +++ b/src/browser/Browser.zig @@ -19,17 +19,13 @@ const std = @import("std"); const Allocator = std.mem.Allocator; -const ArenaAllocator = std.heap.ArenaAllocator; const js = @import("js/js.zig"); -const log = @import("../log.zig"); const App = @import("../App.zig"); const HttpClient = @import("HttpClient.zig"); const ArenaPool = App.ArenaPool; -const IS_DEBUG = @import("builtin").mode == .Debug; - const Session = @import("Session.zig"); const Notification = @import("../Notification.zig"); diff --git a/src/browser/EventManager.zig b/src/browser/EventManager.zig index 247a298e..a5f8c475 100644 --- a/src/browser/EventManager.zig +++ b/src/browser/EventManager.zig @@ -425,7 +425,7 @@ fn dispatchNode(self: *EventManager, target: *Node, event: *Event, comptime opts ls.deinit(); } - const activation_state = ActivationState.create(event, target, page); + const activation_state = try ActivationState.create(event, target, page); // Defer runs even on early return - ensures event phase is reset // and default actions execute (unless prevented) @@ -820,7 +820,7 @@ const ActivationState = struct { const Input = Element.Html.Input; - fn create(event: *const Event, target: *Node, page: *Page) ?ActivationState { + fn create(event: *const Event, target: *Node, page: *Page) !?ActivationState { if (event._type_string.eql(comptime .wrap("click")) == false) { return null; } diff --git a/src/browser/HttpClient.zig b/src/browser/HttpClient.zig index 3d3b9140..62dc4396 100644 --- a/src/browser/HttpClient.zig +++ b/src/browser/HttpClient.zig @@ -24,12 +24,10 @@ const lp = @import("lightpanda"); const log = @import("../log.zig"); const Net = @import("../network/http.zig"); const Network = @import("../network/Runtime.zig"); -const Config = @import("../Config.zig"); const URL = @import("../browser/URL.zig"); const Notification = @import("../Notification.zig"); const CookieJar = @import("../browser/webapi/storage/Cookie.zig").Jar; const Robots = @import("../network/Robots.zig"); -const RobotStore = Robots.RobotStore; const WebBotAuth = @import("../network/WebBotAuth.zig"); const Allocator = std.mem.Allocator; diff --git a/src/browser/Page.zig b/src/browser/Page.zig index 95e07514..7e24d0c9 100644 --- a/src/browser/Page.zig +++ b/src/browser/Page.zig @@ -43,7 +43,6 @@ const URL = @import("URL.zig"); const Blob = @import("webapi/Blob.zig"); const Node = @import("webapi/Node.zig"); const Event = @import("webapi/Event.zig"); -const EventTarget = @import("webapi/EventTarget.zig"); const CData = @import("webapi/CData.zig"); const Element = @import("webapi/Element.zig"); const HtmlElement = @import("webapi/element/Html.zig"); @@ -59,7 +58,6 @@ const AbstractRange = @import("webapi/AbstractRange.zig"); const MutationObserver = @import("webapi/MutationObserver.zig"); const IntersectionObserver = @import("webapi/IntersectionObserver.zig"); const CustomElementDefinition = @import("webapi/CustomElementDefinition.zig"); -const storage = @import("webapi/storage/storage.zig"); const PageTransitionEvent = @import("webapi/event/PageTransitionEvent.zig"); const SubmitEvent = @import("webapi/event/SubmitEvent.zig"); const NavigationKind = @import("webapi/navigation/root.zig").NavigationKind; @@ -67,7 +65,6 @@ const KeyboardEvent = @import("webapi/event/KeyboardEvent.zig"); const MouseEvent = @import("webapi/event/MouseEvent.zig"); const HttpClient = @import("HttpClient.zig"); -const ArenaPool = App.ArenaPool; const timestamp = @import("../datetime.zig").timestamp; const milliTimestamp = @import("../datetime.zig").milliTimestamp; diff --git a/src/browser/Runner.zig b/src/browser/Runner.zig index 7491a4f6..d3161a91 100644 --- a/src/browser/Runner.zig +++ b/src/browser/Runner.zig @@ -21,12 +21,9 @@ const lp = @import("lightpanda"); const builtin = @import("builtin"); const log = @import("../log.zig"); -const App = @import("../App.zig"); const Page = @import("Page.zig"); const Session = @import("Session.zig"); -const Browser = @import("Browser.zig"); -const Factory = @import("Factory.zig"); const HttpClient = @import("HttpClient.zig"); const IS_DEBUG = builtin.mode == .Debug; diff --git a/src/browser/js/Caller.zig b/src/browser/js/Caller.zig index 28da9f2a..cd4d25d3 100644 --- a/src/browser/js/Caller.zig +++ b/src/browser/js/Caller.zig @@ -128,7 +128,7 @@ fn _constructor(self: *Caller, func: anytype, info: FunctionCallbackInfo) !void const new_this_handle = info.getThis(); var this = js.Object{ .local = local, .handle = new_this_handle }; if (@typeInfo(ReturnType) == .error_union) { - const non_error_res = res catch |err| return err; + const non_error_res = try res; this = try local.mapZigInstanceToJs(new_this_handle, non_error_res); } else { this = try local.mapZigInstanceToJs(new_this_handle, res); diff --git a/src/browser/js/Context.zig b/src/browser/js/Context.zig index 505a56f5..4b4fcead 100644 --- a/src/browser/js/Context.zig +++ b/src/browser/js/Context.zig @@ -22,7 +22,6 @@ const log = @import("../../log.zig"); const js = @import("js.zig"); const Env = @import("Env.zig"); -const bridge = @import("bridge.zig"); const Origin = @import("Origin.zig"); const Scheduler = @import("Scheduler.zig"); diff --git a/src/browser/js/Env.zig b/src/browser/js/Env.zig index b284d4bc..d559928c 100644 --- a/src/browser/js/Env.zig +++ b/src/browser/js/Env.zig @@ -34,7 +34,6 @@ const Snapshot = @import("Snapshot.zig"); const Inspector = @import("Inspector.zig"); const Page = @import("../Page.zig"); -const Session = @import("../Session.zig"); const Window = @import("../webapi/Window.zig"); const JsApis = bridge.JsApis; diff --git a/src/browser/js/Function.zig b/src/browser/js/Function.zig index 4c84a08f..14cc8d14 100644 --- a/src/browser/js/Function.zig +++ b/src/browser/js/Function.zig @@ -21,7 +21,6 @@ const js = @import("js.zig"); const v8 = js.v8; const log = @import("../../log.zig"); -const Session = @import("../Session.zig"); const Function = @This(); diff --git a/src/browser/js/Identity.zig b/src/browser/js/Identity.zig index 323ae909..2e2b35f5 100644 --- a/src/browser/js/Identity.zig +++ b/src/browser/js/Identity.zig @@ -32,7 +32,6 @@ const js = @import("js.zig"); const Session = @import("../Session.zig"); const v8 = js.v8; -const Allocator = std.mem.Allocator; const Identity = @This(); diff --git a/src/browser/js/Local.zig b/src/browser/js/Local.zig index 15c510c1..6dda5f38 100644 --- a/src/browser/js/Local.zig +++ b/src/browser/js/Local.zig @@ -17,7 +17,6 @@ // along with this program. If not, see . const std = @import("std"); -const Page = @import("../Page.zig"); const Session = @import("../Session.zig"); const log = @import("../../log.zig"); const string = @import("../../string.zig"); @@ -33,7 +32,6 @@ const IS_DEBUG = @import("builtin").mode == .Debug; const v8 = js.v8; const CallOpts = Caller.CallOpts; -const Allocator = std.mem.Allocator; // Where js.Context has a lifetime tied to the page, and holds the // v8::Global, this has a much shorter lifetime and holds a diff --git a/src/browser/js/Promise.zig b/src/browser/js/Promise.zig index 4e83c098..4d8d1f11 100644 --- a/src/browser/js/Promise.zig +++ b/src/browser/js/Promise.zig @@ -20,8 +20,6 @@ const std = @import("std"); const js = @import("js.zig"); const v8 = js.v8; -const Session = @import("../Session.zig"); - const Promise = @This(); local: *const js.Local, diff --git a/src/browser/markdown.zig b/src/browser/markdown.zig index f4a0f874..8bc3eaa8 100644 --- a/src/browser/markdown.zig +++ b/src/browser/markdown.zig @@ -21,7 +21,6 @@ const std = @import("std"); const Page = @import("Page.zig"); const URL = @import("URL.zig"); const TreeWalker = @import("webapi/TreeWalker.zig"); -const CData = @import("webapi/CData.zig"); const Element = @import("webapi/Element.zig"); const Node = @import("webapi/Node.zig"); const isAllWhitespace = @import("../string.zig").isAllWhitespace; diff --git a/src/browser/webapi/CustomElementRegistry.zig b/src/browser/webapi/CustomElementRegistry.zig index 25ed8857..6b2a7f5f 100644 --- a/src/browser/webapi/CustomElementRegistry.zig +++ b/src/browser/webapi/CustomElementRegistry.zig @@ -24,7 +24,6 @@ const Page = @import("../Page.zig"); const Node = @import("Node.zig"); const Element = @import("Element.zig"); -const DOMException = @import("DOMException.zig"); const Custom = @import("element/html/Custom.zig"); const CustomElementDefinition = @import("CustomElementDefinition.zig"); diff --git a/src/browser/webapi/HTMLDocument.zig b/src/browser/webapi/HTMLDocument.zig index 76c3be40..555e9b2d 100644 --- a/src/browser/webapi/HTMLDocument.zig +++ b/src/browser/webapi/HTMLDocument.zig @@ -18,7 +18,6 @@ const std = @import("std"); const js = @import("../js/js.zig"); -const String = @import("../../string.zig").String; const Page = @import("../Page.zig"); const Node = @import("Node.zig"); diff --git a/src/browser/webapi/Selection.zig b/src/browser/webapi/Selection.zig index 7c261823..c6b84e89 100644 --- a/src/browser/webapi/Selection.zig +++ b/src/browser/webapi/Selection.zig @@ -17,7 +17,6 @@ // along with this program. If not, see . const std = @import("std"); -const log = @import("../../log.zig"); const js = @import("../js/js.zig"); const Page = @import("../Page.zig"); @@ -27,7 +26,6 @@ const Range = @import("Range.zig"); const AbstractRange = @import("AbstractRange.zig"); const Node = @import("Node.zig"); const Event = @import("Event.zig"); -const Document = @import("Document.zig"); /// https://w3c.github.io/selection-api/ const Selection = @This(); diff --git a/src/browser/webapi/VisualViewport.zig b/src/browser/webapi/VisualViewport.zig index 5bd5cd04..15adb392 100644 --- a/src/browser/webapi/VisualViewport.zig +++ b/src/browser/webapi/VisualViewport.zig @@ -19,7 +19,6 @@ const js = @import("../js/js.zig"); const Page = @import("../Page.zig"); const EventTarget = @import("EventTarget.zig"); -const Window = @import("Window.zig"); const VisualViewport = @This(); diff --git a/src/browser/webapi/cdata/Text.zig b/src/browser/webapi/cdata/Text.zig index e7a338b5..c1e83ebc 100644 --- a/src/browser/webapi/cdata/Text.zig +++ b/src/browser/webapi/cdata/Text.zig @@ -16,7 +16,6 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -const String = @import("../../../string.zig").String; const js = @import("../../js/js.zig"); const Page = @import("../../Page.zig"); const CData = @import("../CData.zig"); diff --git a/src/browser/webapi/crypto/X25519.zig b/src/browser/webapi/crypto/X25519.zig index a509a22d..eb3e9708 100644 --- a/src/browser/webapi/crypto/X25519.zig +++ b/src/browser/webapi/crypto/X25519.zig @@ -20,7 +20,6 @@ const std = @import("std"); const lp = @import("lightpanda"); -const log = @import("../../../log.zig"); const crypto = @import("../../../sys/libcrypto.zig"); const Page = @import("../../Page.zig"); diff --git a/src/browser/webapi/element/html/IFrame.zig b/src/browser/webapi/element/html/IFrame.zig index 8aa24814..e596f4ac 100644 --- a/src/browser/webapi/element/html/IFrame.zig +++ b/src/browser/webapi/element/html/IFrame.zig @@ -16,7 +16,6 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -const log = @import("../../../../log.zig"); const js = @import("../../../js/js.zig"); const Page = @import("../../../Page.zig"); const Window = @import("../../Window.zig"); diff --git a/src/browser/webapi/element/html/Image.zig b/src/browser/webapi/element/html/Image.zig index ad5c17f5..b6731144 100644 --- a/src/browser/webapi/element/html/Image.zig +++ b/src/browser/webapi/element/html/Image.zig @@ -5,10 +5,6 @@ const URL = @import("../../../URL.zig"); const Node = @import("../../Node.zig"); const Element = @import("../../Element.zig"); const HtmlElement = @import("../Html.zig"); -const Event = @import("../../Event.zig"); -const log = @import("../../../../log.zig"); - -const IS_DEBUG = @import("builtin").mode == .Debug; const Image = @This(); _proto: *HtmlElement, diff --git a/src/browser/webapi/event/CompositionEvent.zig b/src/browser/webapi/event/CompositionEvent.zig index a761e3ba..6de4e702 100644 --- a/src/browser/webapi/event/CompositionEvent.zig +++ b/src/browser/webapi/event/CompositionEvent.zig @@ -22,7 +22,6 @@ const js = @import("../../js/js.zig"); const Page = @import("../../Page.zig"); const Session = @import("../../Session.zig"); const Event = @import("../Event.zig"); -const Allocator = std.mem.Allocator; const CompositionEvent = @This(); diff --git a/src/browser/webapi/event/PromiseRejectionEvent.zig b/src/browser/webapi/event/PromiseRejectionEvent.zig index f0a195b9..5be6d792 100644 --- a/src/browser/webapi/event/PromiseRejectionEvent.zig +++ b/src/browser/webapi/event/PromiseRejectionEvent.zig @@ -22,7 +22,6 @@ const js = @import("../../js/js.zig"); const Page = @import("../../Page.zig"); const Session = @import("../../Session.zig"); const Event = @import("../Event.zig"); -const Allocator = std.mem.Allocator; const PromiseRejectionEvent = @This(); diff --git a/src/browser/webapi/navigation/Navigation.zig b/src/browser/webapi/navigation/Navigation.zig index 6754c5da..672b1c28 100644 --- a/src/browser/webapi/navigation/Navigation.zig +++ b/src/browser/webapi/navigation/Navigation.zig @@ -27,8 +27,6 @@ const Page = @import("../../Page.zig"); const Event = @import("../Event.zig"); const EventTarget = @import("../EventTarget.zig"); -const IS_DEBUG = @import("builtin").mode == .Debug; - // https://developer.mozilla.org/en-US/docs/Web/API/Navigation const Navigation = @This(); diff --git a/src/browser/webapi/navigation/NavigationHistoryEntry.zig b/src/browser/webapi/navigation/NavigationHistoryEntry.zig index 6ab9b6b6..569187b1 100644 --- a/src/browser/webapi/navigation/NavigationHistoryEntry.zig +++ b/src/browser/webapi/navigation/NavigationHistoryEntry.zig @@ -18,7 +18,6 @@ const std = @import("std"); const URL = @import("../URL.zig"); -const EventTarget = @import("../EventTarget.zig"); const NavigationState = @import("root.zig").NavigationState; const Page = @import("../../Page.zig"); const js = @import("../../js/js.zig"); diff --git a/src/browser/webapi/net/FormData.zig b/src/browser/webapi/net/FormData.zig index 73a5a5c8..78baa587 100644 --- a/src/browser/webapi/net/FormData.zig +++ b/src/browser/webapi/net/FormData.zig @@ -22,7 +22,6 @@ const log = @import("../../../log.zig"); const js = @import("../../js/js.zig"); const Page = @import("../../Page.zig"); -const Node = @import("../Node.zig"); const Form = @import("../element/html/Form.zig"); const Element = @import("../Element.zig"); const KeyValueList = @import("../KeyValueList.zig"); diff --git a/src/cdp/CDP.zig b/src/cdp/CDP.zig index e9c0e3eb..84ed9cfa 100644 --- a/src/cdp/CDP.zig +++ b/src/cdp/CDP.zig @@ -25,7 +25,6 @@ const json = std.json; const Incrementing = @import("id.zig").Incrementing; const log = @import("../log.zig"); -const App = @import("../App.zig"); const Notification = @import("../Notification.zig"); const Client = @import("../Server.zig").Client; @@ -35,7 +34,6 @@ const Browser = @import("../browser/Browser.zig"); const Session = @import("../browser/Session.zig"); const Page = @import("../browser/Page.zig"); const Mime = @import("../browser/Mime.zig"); -const HttpClient = @import("../browser/HttpClient.zig"); const InterceptState = @import("domains/fetch.zig").InterceptState; diff --git a/src/cdp/domains/lp.zig b/src/cdp/domains/lp.zig index b11de91f..72eb6ee8 100644 --- a/src/cdp/domains/lp.zig +++ b/src/cdp/domains/lp.zig @@ -18,7 +18,6 @@ const std = @import("std"); const lp = @import("lightpanda"); -const log = @import("../../log.zig"); const markdown = lp.markdown; const SemanticTree = lp.SemanticTree; const interactive = lp.interactive; diff --git a/src/cdp/domains/target.zig b/src/cdp/domains/target.zig index 4755eaba..a26c8d78 100644 --- a/src/cdp/domains/target.zig +++ b/src/cdp/domains/target.zig @@ -24,9 +24,6 @@ const log = @import("../../log.zig"); const URL = @import("../../browser/URL.zig"); const js = @import("../../browser/js/js.zig"); -// TODO: hard coded IDs -const LOADER_ID = "LOADERID42AA389647D702B4D805F49A"; - pub fn processMessage(cmd: anytype) !void { const action = std.meta.stringToEnum(enum { getTargets, diff --git a/src/cdp/id.zig b/src/cdp/id.zig index 2f3fd252..82144ece 100644 --- a/src/cdp/id.zig +++ b/src/cdp/id.zig @@ -17,7 +17,6 @@ // along with this program. If not, see . const std = @import("std"); -const IS_DEBUG = @import("builtin").mode == .Debug; pub fn toPageId(comptime id_type: enum { frame_id, loader_id }, input: []const u8) !u32 { const err = switch (comptime id_type) { diff --git a/src/cdp/testing.zig b/src/cdp/testing.zig index 87639a6c..a327f1bb 100644 --- a/src/cdp/testing.zig +++ b/src/cdp/testing.zig @@ -19,10 +19,6 @@ const std = @import("std"); const json = std.json; const posix = std.posix; -const Allocator = std.mem.Allocator; -const ArenaAllocator = std.heap.ArenaAllocator; - -const Testing = @This(); const CDP = @import("CDP.zig"); const Server = @import("../Server.zig"); diff --git a/src/log.zig b/src/log.zig index 8cf712ba..201e6c9f 100644 --- a/src/log.zig +++ b/src/log.zig @@ -49,9 +49,6 @@ const Opts = struct { pub var opts = Opts{}; -// synchronizes writes to the output -var out_lock: Thread.Mutex = .{}; - // synchronizes access to last_log var last_log_lock: Thread.Mutex = .{}; diff --git a/src/mcp/router.zig b/src/mcp/router.zig index 38b2e206..a37c9b20 100644 --- a/src/mcp/router.zig +++ b/src/mcp/router.zig @@ -1,5 +1,4 @@ const std = @import("std"); -const lp = @import("lightpanda"); const protocol = @import("protocol.zig"); const resources = @import("resources.zig"); const Server = @import("Server.zig"); diff --git a/src/mcp/tools.zig b/src/mcp/tools.zig index f4a82570..64ff29d0 100644 --- a/src/mcp/tools.zig +++ b/src/mcp/tools.zig @@ -4,9 +4,7 @@ const lp = @import("lightpanda"); const log = lp.log; const js = lp.js; -const Element = @import("../browser/webapi/Element.zig"); const DOMNode = @import("../browser/webapi/Node.zig"); -const Selector = @import("../browser/webapi/selector/Selector.zig"); const protocol = @import("protocol.zig"); const Server = @import("Server.zig"); const CDPNode = @import("../cdp/Node.zig"); diff --git a/src/network/http.zig b/src/network/http.zig index 7916260d..aea53824 100644 --- a/src/network/http.zig +++ b/src/network/http.zig @@ -19,7 +19,6 @@ const std = @import("std"); const builtin = @import("builtin"); const posix = std.posix; -const Allocator = std.mem.Allocator; const ArenaAllocator = std.heap.ArenaAllocator; const Config = @import("../Config.zig"); @@ -29,18 +28,12 @@ const log = @import("lightpanda").log; const assert = @import("lightpanda").assert; pub const ENABLE_DEBUG = false; -const IS_DEBUG = builtin.mode == .Debug; pub const Blob = libcurl.CurlBlob; pub const WaitFd = libcurl.CurlWaitFd; pub const writefunc_error = libcurl.curl_writefunc_error; const Error = libcurl.Error; -const ErrorMulti = libcurl.ErrorMulti; -const errorFromCode = libcurl.errorFromCode; -const errorMFromCode = libcurl.errorMFromCode; -const errorCheck = libcurl.errorCheck; -const errorMCheck = libcurl.errorMCheck; pub fn curl_version() [*c]const u8 { return libcurl.curl_version(); diff --git a/src/telemetry/lightpanda.zig b/src/telemetry/lightpanda.zig index 95ac6ddf..01e320ee 100644 --- a/src/telemetry/lightpanda.zig +++ b/src/telemetry/lightpanda.zig @@ -9,7 +9,6 @@ const App = @import("../App.zig"); const Config = @import("../Config.zig"); const telemetry = @import("telemetry.zig"); const Runtime = @import("../network/Runtime.zig"); -const Connection = @import("../network/http.zig").Connection; const URL = "https://telemetry.lightpanda.io"; const BUFFER_SIZE = 1024;