mirror of
https://github.com/lightpanda-io/browser.git
synced 2025-10-29 23:23:28 +00:00
browser: pass vm as argument
This commit is contained in:
@@ -22,21 +22,17 @@ const log = std.log.scoped(.browser);
|
|||||||
|
|
||||||
// Browser is an instance of the browser.
|
// Browser is an instance of the browser.
|
||||||
// You can create multiple browser instances.
|
// You can create multiple browser instances.
|
||||||
// It contains only one session but initVM() and deinitVM() must be called only
|
// A browser contains only one session.
|
||||||
// once per main.
|
// TODO allow multiple sessions per browser.
|
||||||
pub const Browser = struct {
|
pub const Browser = struct {
|
||||||
allocator: std.mem.Allocator,
|
allocator: std.mem.Allocator,
|
||||||
session: *Session = undefined,
|
session: *Session = undefined,
|
||||||
|
|
||||||
var vm: jsruntime.VM = undefined;
|
pub fn init(allocator: std.mem.Allocator, vm: jsruntime.VM) !Browser {
|
||||||
pub fn initVM() void {
|
// We want to ensure the caller initialised a VM, but the browser
|
||||||
vm = jsruntime.VM.init();
|
// doesn't use it directly...
|
||||||
}
|
_ = vm;
|
||||||
pub fn deinitVM() void {
|
|
||||||
vm.deinit();
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn init(allocator: std.mem.Allocator) !Browser {
|
|
||||||
return Browser{
|
return Browser{
|
||||||
.allocator = allocator,
|
.allocator = allocator,
|
||||||
.session = try Session.init(allocator, "about:blank"),
|
.session = try Session.init(allocator, "about:blank"),
|
||||||
|
|||||||
@@ -57,10 +57,10 @@ pub fn main() !void {
|
|||||||
std.os.exit(1);
|
std.os.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Browser.initVM();
|
const vm = jsruntime.VM.init();
|
||||||
defer Browser.deinitVM();
|
defer vm.deinit();
|
||||||
|
|
||||||
var browser = try Browser.init(allocator);
|
var browser = try Browser.init(allocator, vm);
|
||||||
defer browser.deinit();
|
defer browser.deinit();
|
||||||
|
|
||||||
var page = try browser.currentSession().createPage();
|
var page = try browser.currentSession().createPage();
|
||||||
|
|||||||
Reference in New Issue
Block a user