github.com/primecitizens/pcz/std@v0.2.1/plat/js/webext/runtime/apis_js_wasm.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright 2023 The Prime Citizens
     3  
     4  package runtime
     5  
     6  import (
     7  	"github.com/primecitizens/pcz/std/core/abi"
     8  	"github.com/primecitizens/pcz/std/core/mark"
     9  	"github.com/primecitizens/pcz/std/ffi/js"
    10  	"github.com/primecitizens/pcz/std/plat/js/webext/runtime/bindings"
    11  	"github.com/primecitizens/pcz/std/plat/js/webext/tabs"
    12  )
    13  
    14  type ConnectArgConnectInfo struct {
    15  	// IncludeTlsChannelId is "ConnectArgConnectInfo.includeTlsChannelId"
    16  	//
    17  	// Optional
    18  	//
    19  	// NOTE: FFI_USE_IncludeTlsChannelId MUST be set to true to make this field effective.
    20  	IncludeTlsChannelId bool
    21  	// Name is "ConnectArgConnectInfo.name"
    22  	//
    23  	// Optional
    24  	Name js.String
    25  
    26  	FFI_USE_IncludeTlsChannelId bool // for IncludeTlsChannelId.
    27  
    28  	FFI_USE bool
    29  }
    30  
    31  // FromRef calls UpdateFrom and returns a ConnectArgConnectInfo with all fields set.
    32  func (p ConnectArgConnectInfo) FromRef(ref js.Ref) ConnectArgConnectInfo {
    33  	p.UpdateFrom(ref)
    34  	return p
    35  }
    36  
    37  // New creates a new ConnectArgConnectInfo in the application heap.
    38  func (p ConnectArgConnectInfo) New() js.Ref {
    39  	return bindings.ConnectArgConnectInfoJSLoad(
    40  		js.Pointer(&p), js.True, 0,
    41  	)
    42  }
    43  
    44  // UpdateFrom copies value of all fields of the heap object to p.
    45  func (p *ConnectArgConnectInfo) UpdateFrom(ref js.Ref) {
    46  	bindings.ConnectArgConnectInfoJSStore(
    47  		js.Pointer(p), ref,
    48  	)
    49  }
    50  
    51  // Update writes all fields of the p to the heap object referenced by ref.
    52  func (p *ConnectArgConnectInfo) Update(ref js.Ref) {
    53  	bindings.ConnectArgConnectInfoJSLoad(
    54  		js.Pointer(p), js.False, ref,
    55  	)
    56  }
    57  
    58  // FreeMembers frees fields with heap reference, if recursive is true
    59  // free all heap references reachable from p.
    60  func (p *ConnectArgConnectInfo) FreeMembers(recursive bool) {
    61  	js.Free(
    62  		p.Name.Ref(),
    63  	)
    64  	p.Name = p.Name.FromRef(js.Undefined)
    65  }
    66  
    67  type ContextType uint32
    68  
    69  const (
    70  	_ ContextType = iota
    71  
    72  	ContextType_TAB
    73  	ContextType_POPUP
    74  	ContextType_BACKGROUND
    75  	ContextType_OFFSCREEN_DOCUMENT
    76  	ContextType_SIDE_PANEL
    77  )
    78  
    79  func (ContextType) FromRef(str js.Ref) ContextType {
    80  	return ContextType(bindings.ConstOfContextType(str))
    81  }
    82  
    83  func (x ContextType) String() (string, bool) {
    84  	switch x {
    85  	case ContextType_TAB:
    86  		return "TAB", true
    87  	case ContextType_POPUP:
    88  		return "POPUP", true
    89  	case ContextType_BACKGROUND:
    90  		return "BACKGROUND", true
    91  	case ContextType_OFFSCREEN_DOCUMENT:
    92  		return "OFFSCREEN_DOCUMENT", true
    93  	case ContextType_SIDE_PANEL:
    94  		return "SIDE_PANEL", true
    95  	default:
    96  		return "", false
    97  	}
    98  }
    99  
   100  type ContextFilter struct {
   101  	// ContextIds is "ContextFilter.contextIds"
   102  	//
   103  	// Optional
   104  	ContextIds js.Array[js.String]
   105  	// ContextTypes is "ContextFilter.contextTypes"
   106  	//
   107  	// Optional
   108  	ContextTypes js.Array[ContextType]
   109  	// DocumentIds is "ContextFilter.documentIds"
   110  	//
   111  	// Optional
   112  	DocumentIds js.Array[js.String]
   113  	// DocumentOrigins is "ContextFilter.documentOrigins"
   114  	//
   115  	// Optional
   116  	DocumentOrigins js.Array[js.String]
   117  	// DocumentUrls is "ContextFilter.documentUrls"
   118  	//
   119  	// Optional
   120  	DocumentUrls js.Array[js.String]
   121  	// FrameIds is "ContextFilter.frameIds"
   122  	//
   123  	// Optional
   124  	FrameIds js.Array[int64]
   125  	// Incognito is "ContextFilter.incognito"
   126  	//
   127  	// Optional
   128  	//
   129  	// NOTE: FFI_USE_Incognito MUST be set to true to make this field effective.
   130  	Incognito bool
   131  	// TabIds is "ContextFilter.tabIds"
   132  	//
   133  	// Optional
   134  	TabIds js.Array[int64]
   135  	// WindowIds is "ContextFilter.windowIds"
   136  	//
   137  	// Optional
   138  	WindowIds js.Array[int64]
   139  
   140  	FFI_USE_Incognito bool // for Incognito.
   141  
   142  	FFI_USE bool
   143  }
   144  
   145  // FromRef calls UpdateFrom and returns a ContextFilter with all fields set.
   146  func (p ContextFilter) FromRef(ref js.Ref) ContextFilter {
   147  	p.UpdateFrom(ref)
   148  	return p
   149  }
   150  
   151  // New creates a new ContextFilter in the application heap.
   152  func (p ContextFilter) New() js.Ref {
   153  	return bindings.ContextFilterJSLoad(
   154  		js.Pointer(&p), js.True, 0,
   155  	)
   156  }
   157  
   158  // UpdateFrom copies value of all fields of the heap object to p.
   159  func (p *ContextFilter) UpdateFrom(ref js.Ref) {
   160  	bindings.ContextFilterJSStore(
   161  		js.Pointer(p), ref,
   162  	)
   163  }
   164  
   165  // Update writes all fields of the p to the heap object referenced by ref.
   166  func (p *ContextFilter) Update(ref js.Ref) {
   167  	bindings.ContextFilterJSLoad(
   168  		js.Pointer(p), js.False, ref,
   169  	)
   170  }
   171  
   172  // FreeMembers frees fields with heap reference, if recursive is true
   173  // free all heap references reachable from p.
   174  func (p *ContextFilter) FreeMembers(recursive bool) {
   175  	js.Free(
   176  		p.ContextIds.Ref(),
   177  		p.ContextTypes.Ref(),
   178  		p.DocumentIds.Ref(),
   179  		p.DocumentOrigins.Ref(),
   180  		p.DocumentUrls.Ref(),
   181  		p.FrameIds.Ref(),
   182  		p.TabIds.Ref(),
   183  		p.WindowIds.Ref(),
   184  	)
   185  	p.ContextIds = p.ContextIds.FromRef(js.Undefined)
   186  	p.ContextTypes = p.ContextTypes.FromRef(js.Undefined)
   187  	p.DocumentIds = p.DocumentIds.FromRef(js.Undefined)
   188  	p.DocumentOrigins = p.DocumentOrigins.FromRef(js.Undefined)
   189  	p.DocumentUrls = p.DocumentUrls.FromRef(js.Undefined)
   190  	p.FrameIds = p.FrameIds.FromRef(js.Undefined)
   191  	p.TabIds = p.TabIds.FromRef(js.Undefined)
   192  	p.WindowIds = p.WindowIds.FromRef(js.Undefined)
   193  }
   194  
   195  type ExtensionContext struct {
   196  	// ContextId is "ExtensionContext.contextId"
   197  	//
   198  	// Required
   199  	ContextId js.String
   200  	// ContextType is "ExtensionContext.contextType"
   201  	//
   202  	// Required
   203  	ContextType ContextType
   204  	// DocumentId is "ExtensionContext.documentId"
   205  	//
   206  	// Optional
   207  	DocumentId js.String
   208  	// DocumentOrigin is "ExtensionContext.documentOrigin"
   209  	//
   210  	// Optional
   211  	DocumentOrigin js.String
   212  	// DocumentUrl is "ExtensionContext.documentUrl"
   213  	//
   214  	// Optional
   215  	DocumentUrl js.String
   216  	// FrameId is "ExtensionContext.frameId"
   217  	//
   218  	// Required
   219  	FrameId int64
   220  	// Incognito is "ExtensionContext.incognito"
   221  	//
   222  	// Required
   223  	Incognito bool
   224  	// TabId is "ExtensionContext.tabId"
   225  	//
   226  	// Required
   227  	TabId int64
   228  	// WindowId is "ExtensionContext.windowId"
   229  	//
   230  	// Required
   231  	WindowId int64
   232  
   233  	FFI_USE bool
   234  }
   235  
   236  // FromRef calls UpdateFrom and returns a ExtensionContext with all fields set.
   237  func (p ExtensionContext) FromRef(ref js.Ref) ExtensionContext {
   238  	p.UpdateFrom(ref)
   239  	return p
   240  }
   241  
   242  // New creates a new ExtensionContext in the application heap.
   243  func (p ExtensionContext) New() js.Ref {
   244  	return bindings.ExtensionContextJSLoad(
   245  		js.Pointer(&p), js.True, 0,
   246  	)
   247  }
   248  
   249  // UpdateFrom copies value of all fields of the heap object to p.
   250  func (p *ExtensionContext) UpdateFrom(ref js.Ref) {
   251  	bindings.ExtensionContextJSStore(
   252  		js.Pointer(p), ref,
   253  	)
   254  }
   255  
   256  // Update writes all fields of the p to the heap object referenced by ref.
   257  func (p *ExtensionContext) Update(ref js.Ref) {
   258  	bindings.ExtensionContextJSLoad(
   259  		js.Pointer(p), js.False, ref,
   260  	)
   261  }
   262  
   263  // FreeMembers frees fields with heap reference, if recursive is true
   264  // free all heap references reachable from p.
   265  func (p *ExtensionContext) FreeMembers(recursive bool) {
   266  	js.Free(
   267  		p.ContextId.Ref(),
   268  		p.DocumentId.Ref(),
   269  		p.DocumentOrigin.Ref(),
   270  		p.DocumentUrl.Ref(),
   271  	)
   272  	p.ContextId = p.ContextId.FromRef(js.Undefined)
   273  	p.DocumentId = p.DocumentId.FromRef(js.Undefined)
   274  	p.DocumentOrigin = p.DocumentOrigin.FromRef(js.Undefined)
   275  	p.DocumentUrl = p.DocumentUrl.FromRef(js.Undefined)
   276  }
   277  
   278  type GetPackageDirectoryEntryArgCallbackFunc func(this js.Ref, directoryEntry js.Any) js.Ref
   279  
   280  func (fn GetPackageDirectoryEntryArgCallbackFunc) Register() js.Func[func(directoryEntry js.Any)] {
   281  	return js.RegisterCallback[func(directoryEntry js.Any)](
   282  		fn, abi.FuncPCABIInternal(fn),
   283  	)
   284  }
   285  
   286  func (fn GetPackageDirectoryEntryArgCallbackFunc) DispatchCallback(
   287  	targetPC uintptr, ctx *js.CallbackContext,
   288  ) {
   289  	args := ctx.Args()
   290  	if len(args) != 1+1 /* js this */ ||
   291  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   292  		js.ThrowInvalidCallbackInvocation()
   293  	}
   294  
   295  	if ctx.Return(fn(
   296  		args[0],
   297  
   298  		js.Any{}.FromRef(args[0+1]),
   299  	)) {
   300  		return
   301  	}
   302  
   303  	js.ThrowCallbackValueNotReturned()
   304  }
   305  
   306  type GetPackageDirectoryEntryArgCallback[T any] struct {
   307  	Fn  func(arg T, this js.Ref, directoryEntry js.Any) js.Ref
   308  	Arg T
   309  }
   310  
   311  func (cb *GetPackageDirectoryEntryArgCallback[T]) Register() js.Func[func(directoryEntry js.Any)] {
   312  	return js.RegisterCallback[func(directoryEntry js.Any)](
   313  		cb, abi.FuncPCABIInternal(cb.Fn),
   314  	)
   315  }
   316  
   317  func (cb *GetPackageDirectoryEntryArgCallback[T]) DispatchCallback(
   318  	targetPC uintptr, ctx *js.CallbackContext,
   319  ) {
   320  	args := ctx.Args()
   321  	if len(args) != 1+1 /* js this */ ||
   322  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   323  		js.ThrowInvalidCallbackInvocation()
   324  	}
   325  
   326  	if ctx.Return(cb.Fn(
   327  		cb.Arg,
   328  		args[0],
   329  
   330  		js.Any{}.FromRef(args[0+1]),
   331  	)) {
   332  		return
   333  	}
   334  
   335  	js.ThrowCallbackValueNotReturned()
   336  }
   337  
   338  type LastErrorProperty struct {
   339  	// Message is "LastErrorProperty.message"
   340  	//
   341  	// Optional
   342  	Message js.String
   343  
   344  	FFI_USE bool
   345  }
   346  
   347  // FromRef calls UpdateFrom and returns a LastErrorProperty with all fields set.
   348  func (p LastErrorProperty) FromRef(ref js.Ref) LastErrorProperty {
   349  	p.UpdateFrom(ref)
   350  	return p
   351  }
   352  
   353  // New creates a new LastErrorProperty in the application heap.
   354  func (p LastErrorProperty) New() js.Ref {
   355  	return bindings.LastErrorPropertyJSLoad(
   356  		js.Pointer(&p), js.True, 0,
   357  	)
   358  }
   359  
   360  // UpdateFrom copies value of all fields of the heap object to p.
   361  func (p *LastErrorProperty) UpdateFrom(ref js.Ref) {
   362  	bindings.LastErrorPropertyJSStore(
   363  		js.Pointer(p), ref,
   364  	)
   365  }
   366  
   367  // Update writes all fields of the p to the heap object referenced by ref.
   368  func (p *LastErrorProperty) Update(ref js.Ref) {
   369  	bindings.LastErrorPropertyJSLoad(
   370  		js.Pointer(p), js.False, ref,
   371  	)
   372  }
   373  
   374  // FreeMembers frees fields with heap reference, if recursive is true
   375  // free all heap references reachable from p.
   376  func (p *LastErrorProperty) FreeMembers(recursive bool) {
   377  	js.Free(
   378  		p.Message.Ref(),
   379  	)
   380  	p.Message = p.Message.FromRef(js.Undefined)
   381  }
   382  
   383  type MessageSender struct {
   384  	// DocumentId is "MessageSender.documentId"
   385  	//
   386  	// Optional
   387  	DocumentId js.String
   388  	// DocumentLifecycle is "MessageSender.documentLifecycle"
   389  	//
   390  	// Optional
   391  	DocumentLifecycle js.String
   392  	// FrameId is "MessageSender.frameId"
   393  	//
   394  	// Optional
   395  	//
   396  	// NOTE: FFI_USE_FrameId MUST be set to true to make this field effective.
   397  	FrameId int64
   398  	// GuestProcessId is "MessageSender.guestProcessId"
   399  	//
   400  	// Optional
   401  	//
   402  	// NOTE: FFI_USE_GuestProcessId MUST be set to true to make this field effective.
   403  	GuestProcessId int64
   404  	// GuestRenderFrameRoutingId is "MessageSender.guestRenderFrameRoutingId"
   405  	//
   406  	// Optional
   407  	//
   408  	// NOTE: FFI_USE_GuestRenderFrameRoutingId MUST be set to true to make this field effective.
   409  	GuestRenderFrameRoutingId int64
   410  	// Id is "MessageSender.id"
   411  	//
   412  	// Optional
   413  	Id js.String
   414  	// NativeApplication is "MessageSender.nativeApplication"
   415  	//
   416  	// Optional
   417  	NativeApplication js.String
   418  	// Origin is "MessageSender.origin"
   419  	//
   420  	// Optional
   421  	Origin js.String
   422  	// Tab is "MessageSender.tab"
   423  	//
   424  	// Optional
   425  	//
   426  	// NOTE: Tab.FFI_USE MUST be set to true to get Tab used.
   427  	Tab tabs.Tab
   428  	// TlsChannelId is "MessageSender.tlsChannelId"
   429  	//
   430  	// Optional
   431  	TlsChannelId js.String
   432  	// Url is "MessageSender.url"
   433  	//
   434  	// Optional
   435  	Url js.String
   436  
   437  	FFI_USE_FrameId                   bool // for FrameId.
   438  	FFI_USE_GuestProcessId            bool // for GuestProcessId.
   439  	FFI_USE_GuestRenderFrameRoutingId bool // for GuestRenderFrameRoutingId.
   440  
   441  	FFI_USE bool
   442  }
   443  
   444  // FromRef calls UpdateFrom and returns a MessageSender with all fields set.
   445  func (p MessageSender) FromRef(ref js.Ref) MessageSender {
   446  	p.UpdateFrom(ref)
   447  	return p
   448  }
   449  
   450  // New creates a new MessageSender in the application heap.
   451  func (p MessageSender) New() js.Ref {
   452  	return bindings.MessageSenderJSLoad(
   453  		js.Pointer(&p), js.True, 0,
   454  	)
   455  }
   456  
   457  // UpdateFrom copies value of all fields of the heap object to p.
   458  func (p *MessageSender) UpdateFrom(ref js.Ref) {
   459  	bindings.MessageSenderJSStore(
   460  		js.Pointer(p), ref,
   461  	)
   462  }
   463  
   464  // Update writes all fields of the p to the heap object referenced by ref.
   465  func (p *MessageSender) Update(ref js.Ref) {
   466  	bindings.MessageSenderJSLoad(
   467  		js.Pointer(p), js.False, ref,
   468  	)
   469  }
   470  
   471  // FreeMembers frees fields with heap reference, if recursive is true
   472  // free all heap references reachable from p.
   473  func (p *MessageSender) FreeMembers(recursive bool) {
   474  	js.Free(
   475  		p.DocumentId.Ref(),
   476  		p.DocumentLifecycle.Ref(),
   477  		p.Id.Ref(),
   478  		p.NativeApplication.Ref(),
   479  		p.Origin.Ref(),
   480  		p.TlsChannelId.Ref(),
   481  		p.Url.Ref(),
   482  	)
   483  	p.DocumentId = p.DocumentId.FromRef(js.Undefined)
   484  	p.DocumentLifecycle = p.DocumentLifecycle.FromRef(js.Undefined)
   485  	p.Id = p.Id.FromRef(js.Undefined)
   486  	p.NativeApplication = p.NativeApplication.FromRef(js.Undefined)
   487  	p.Origin = p.Origin.FromRef(js.Undefined)
   488  	p.TlsChannelId = p.TlsChannelId.FromRef(js.Undefined)
   489  	p.Url = p.Url.FromRef(js.Undefined)
   490  	if recursive {
   491  		p.Tab.FreeMembers(true)
   492  	}
   493  }
   494  
   495  type OnInstalledReason uint32
   496  
   497  const (
   498  	_ OnInstalledReason = iota
   499  
   500  	OnInstalledReason_INSTALL
   501  	OnInstalledReason_UPDATE
   502  	OnInstalledReason_CHROME_UPDATE
   503  	OnInstalledReason_SHARED_MODULE_UPDATE
   504  )
   505  
   506  func (OnInstalledReason) FromRef(str js.Ref) OnInstalledReason {
   507  	return OnInstalledReason(bindings.ConstOfOnInstalledReason(str))
   508  }
   509  
   510  func (x OnInstalledReason) String() (string, bool) {
   511  	switch x {
   512  	case OnInstalledReason_INSTALL:
   513  		return "install", true
   514  	case OnInstalledReason_UPDATE:
   515  		return "update", true
   516  	case OnInstalledReason_CHROME_UPDATE:
   517  		return "chrome_update", true
   518  	case OnInstalledReason_SHARED_MODULE_UPDATE:
   519  		return "shared_module_update", true
   520  	default:
   521  		return "", false
   522  	}
   523  }
   524  
   525  type OnInstalledArgDetails struct {
   526  	// Id is "OnInstalledArgDetails.id"
   527  	//
   528  	// Optional
   529  	Id js.String
   530  	// PreviousVersion is "OnInstalledArgDetails.previousVersion"
   531  	//
   532  	// Optional
   533  	PreviousVersion js.String
   534  	// Reason is "OnInstalledArgDetails.reason"
   535  	//
   536  	// Required
   537  	Reason OnInstalledReason
   538  
   539  	FFI_USE bool
   540  }
   541  
   542  // FromRef calls UpdateFrom and returns a OnInstalledArgDetails with all fields set.
   543  func (p OnInstalledArgDetails) FromRef(ref js.Ref) OnInstalledArgDetails {
   544  	p.UpdateFrom(ref)
   545  	return p
   546  }
   547  
   548  // New creates a new OnInstalledArgDetails in the application heap.
   549  func (p OnInstalledArgDetails) New() js.Ref {
   550  	return bindings.OnInstalledArgDetailsJSLoad(
   551  		js.Pointer(&p), js.True, 0,
   552  	)
   553  }
   554  
   555  // UpdateFrom copies value of all fields of the heap object to p.
   556  func (p *OnInstalledArgDetails) UpdateFrom(ref js.Ref) {
   557  	bindings.OnInstalledArgDetailsJSStore(
   558  		js.Pointer(p), ref,
   559  	)
   560  }
   561  
   562  // Update writes all fields of the p to the heap object referenced by ref.
   563  func (p *OnInstalledArgDetails) Update(ref js.Ref) {
   564  	bindings.OnInstalledArgDetailsJSLoad(
   565  		js.Pointer(p), js.False, ref,
   566  	)
   567  }
   568  
   569  // FreeMembers frees fields with heap reference, if recursive is true
   570  // free all heap references reachable from p.
   571  func (p *OnInstalledArgDetails) FreeMembers(recursive bool) {
   572  	js.Free(
   573  		p.Id.Ref(),
   574  		p.PreviousVersion.Ref(),
   575  	)
   576  	p.Id = p.Id.FromRef(js.Undefined)
   577  	p.PreviousVersion = p.PreviousVersion.FromRef(js.Undefined)
   578  }
   579  
   580  type OnMessageArgSendResponseFunc func(this js.Ref) js.Ref
   581  
   582  func (fn OnMessageArgSendResponseFunc) Register() js.Func[func()] {
   583  	return js.RegisterCallback[func()](
   584  		fn, abi.FuncPCABIInternal(fn),
   585  	)
   586  }
   587  
   588  func (fn OnMessageArgSendResponseFunc) DispatchCallback(
   589  	targetPC uintptr, ctx *js.CallbackContext,
   590  ) {
   591  	args := ctx.Args()
   592  	if len(args) != 0+1 /* js this */ ||
   593  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   594  		js.ThrowInvalidCallbackInvocation()
   595  	}
   596  
   597  	if ctx.Return(fn(
   598  		args[0],
   599  	)) {
   600  		return
   601  	}
   602  
   603  	js.ThrowCallbackValueNotReturned()
   604  }
   605  
   606  type OnMessageArgSendResponse[T any] struct {
   607  	Fn  func(arg T, this js.Ref) js.Ref
   608  	Arg T
   609  }
   610  
   611  func (cb *OnMessageArgSendResponse[T]) Register() js.Func[func()] {
   612  	return js.RegisterCallback[func()](
   613  		cb, abi.FuncPCABIInternal(cb.Fn),
   614  	)
   615  }
   616  
   617  func (cb *OnMessageArgSendResponse[T]) DispatchCallback(
   618  	targetPC uintptr, ctx *js.CallbackContext,
   619  ) {
   620  	args := ctx.Args()
   621  	if len(args) != 0+1 /* js this */ ||
   622  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   623  		js.ThrowInvalidCallbackInvocation()
   624  	}
   625  
   626  	if ctx.Return(cb.Fn(
   627  		cb.Arg,
   628  		args[0],
   629  	)) {
   630  		return
   631  	}
   632  
   633  	js.ThrowCallbackValueNotReturned()
   634  }
   635  
   636  type OnMessageExternalArgSendResponseFunc func(this js.Ref) js.Ref
   637  
   638  func (fn OnMessageExternalArgSendResponseFunc) Register() js.Func[func()] {
   639  	return js.RegisterCallback[func()](
   640  		fn, abi.FuncPCABIInternal(fn),
   641  	)
   642  }
   643  
   644  func (fn OnMessageExternalArgSendResponseFunc) DispatchCallback(
   645  	targetPC uintptr, ctx *js.CallbackContext,
   646  ) {
   647  	args := ctx.Args()
   648  	if len(args) != 0+1 /* js this */ ||
   649  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   650  		js.ThrowInvalidCallbackInvocation()
   651  	}
   652  
   653  	if ctx.Return(fn(
   654  		args[0],
   655  	)) {
   656  		return
   657  	}
   658  
   659  	js.ThrowCallbackValueNotReturned()
   660  }
   661  
   662  type OnMessageExternalArgSendResponse[T any] struct {
   663  	Fn  func(arg T, this js.Ref) js.Ref
   664  	Arg T
   665  }
   666  
   667  func (cb *OnMessageExternalArgSendResponse[T]) Register() js.Func[func()] {
   668  	return js.RegisterCallback[func()](
   669  		cb, abi.FuncPCABIInternal(cb.Fn),
   670  	)
   671  }
   672  
   673  func (cb *OnMessageExternalArgSendResponse[T]) DispatchCallback(
   674  	targetPC uintptr, ctx *js.CallbackContext,
   675  ) {
   676  	args := ctx.Args()
   677  	if len(args) != 0+1 /* js this */ ||
   678  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   679  		js.ThrowInvalidCallbackInvocation()
   680  	}
   681  
   682  	if ctx.Return(cb.Fn(
   683  		cb.Arg,
   684  		args[0],
   685  	)) {
   686  		return
   687  	}
   688  
   689  	js.ThrowCallbackValueNotReturned()
   690  }
   691  
   692  type OnRestartRequiredReason uint32
   693  
   694  const (
   695  	_ OnRestartRequiredReason = iota
   696  
   697  	OnRestartRequiredReason_APP_UPDATE
   698  	OnRestartRequiredReason_OS_UPDATE
   699  	OnRestartRequiredReason_PERIODIC
   700  )
   701  
   702  func (OnRestartRequiredReason) FromRef(str js.Ref) OnRestartRequiredReason {
   703  	return OnRestartRequiredReason(bindings.ConstOfOnRestartRequiredReason(str))
   704  }
   705  
   706  func (x OnRestartRequiredReason) String() (string, bool) {
   707  	switch x {
   708  	case OnRestartRequiredReason_APP_UPDATE:
   709  		return "app_update", true
   710  	case OnRestartRequiredReason_OS_UPDATE:
   711  		return "os_update", true
   712  	case OnRestartRequiredReason_PERIODIC:
   713  		return "periodic", true
   714  	default:
   715  		return "", false
   716  	}
   717  }
   718  
   719  type OnUserScriptMessageArgSendResponseFunc func(this js.Ref) js.Ref
   720  
   721  func (fn OnUserScriptMessageArgSendResponseFunc) Register() js.Func[func()] {
   722  	return js.RegisterCallback[func()](
   723  		fn, abi.FuncPCABIInternal(fn),
   724  	)
   725  }
   726  
   727  func (fn OnUserScriptMessageArgSendResponseFunc) DispatchCallback(
   728  	targetPC uintptr, ctx *js.CallbackContext,
   729  ) {
   730  	args := ctx.Args()
   731  	if len(args) != 0+1 /* js this */ ||
   732  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   733  		js.ThrowInvalidCallbackInvocation()
   734  	}
   735  
   736  	if ctx.Return(fn(
   737  		args[0],
   738  	)) {
   739  		return
   740  	}
   741  
   742  	js.ThrowCallbackValueNotReturned()
   743  }
   744  
   745  type OnUserScriptMessageArgSendResponse[T any] struct {
   746  	Fn  func(arg T, this js.Ref) js.Ref
   747  	Arg T
   748  }
   749  
   750  func (cb *OnUserScriptMessageArgSendResponse[T]) Register() js.Func[func()] {
   751  	return js.RegisterCallback[func()](
   752  		cb, abi.FuncPCABIInternal(cb.Fn),
   753  	)
   754  }
   755  
   756  func (cb *OnUserScriptMessageArgSendResponse[T]) DispatchCallback(
   757  	targetPC uintptr, ctx *js.CallbackContext,
   758  ) {
   759  	args := ctx.Args()
   760  	if len(args) != 0+1 /* js this */ ||
   761  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   762  		js.ThrowInvalidCallbackInvocation()
   763  	}
   764  
   765  	if ctx.Return(cb.Fn(
   766  		cb.Arg,
   767  		args[0],
   768  	)) {
   769  		return
   770  	}
   771  
   772  	js.ThrowCallbackValueNotReturned()
   773  }
   774  
   775  type PlatformArch uint32
   776  
   777  const (
   778  	_ PlatformArch = iota
   779  
   780  	PlatformArch_ARM
   781  	PlatformArch_ARM64
   782  	PlatformArch_X86_32
   783  	PlatformArch_X86_64
   784  	PlatformArch_MIPS
   785  	PlatformArch_MIPS64
   786  )
   787  
   788  func (PlatformArch) FromRef(str js.Ref) PlatformArch {
   789  	return PlatformArch(bindings.ConstOfPlatformArch(str))
   790  }
   791  
   792  func (x PlatformArch) String() (string, bool) {
   793  	switch x {
   794  	case PlatformArch_ARM:
   795  		return "arm", true
   796  	case PlatformArch_ARM64:
   797  		return "arm64", true
   798  	case PlatformArch_X86_32:
   799  		return "x86-32", true
   800  	case PlatformArch_X86_64:
   801  		return "x86-64", true
   802  	case PlatformArch_MIPS:
   803  		return "mips", true
   804  	case PlatformArch_MIPS64:
   805  		return "mips64", true
   806  	default:
   807  		return "", false
   808  	}
   809  }
   810  
   811  type PlatformNaclArch uint32
   812  
   813  const (
   814  	_ PlatformNaclArch = iota
   815  
   816  	PlatformNaclArch_ARM
   817  	PlatformNaclArch_X86_32
   818  	PlatformNaclArch_X86_64
   819  	PlatformNaclArch_MIPS
   820  	PlatformNaclArch_MIPS64
   821  )
   822  
   823  func (PlatformNaclArch) FromRef(str js.Ref) PlatformNaclArch {
   824  	return PlatformNaclArch(bindings.ConstOfPlatformNaclArch(str))
   825  }
   826  
   827  func (x PlatformNaclArch) String() (string, bool) {
   828  	switch x {
   829  	case PlatformNaclArch_ARM:
   830  		return "arm", true
   831  	case PlatformNaclArch_X86_32:
   832  		return "x86-32", true
   833  	case PlatformNaclArch_X86_64:
   834  		return "x86-64", true
   835  	case PlatformNaclArch_MIPS:
   836  		return "mips", true
   837  	case PlatformNaclArch_MIPS64:
   838  		return "mips64", true
   839  	default:
   840  		return "", false
   841  	}
   842  }
   843  
   844  type PlatformOs uint32
   845  
   846  const (
   847  	_ PlatformOs = iota
   848  
   849  	PlatformOs_MAC
   850  	PlatformOs_WIN
   851  	PlatformOs_ANDROID
   852  	PlatformOs_CROS
   853  	PlatformOs_LINUX
   854  	PlatformOs_OPENBSD
   855  	PlatformOs_FUCHSIA
   856  )
   857  
   858  func (PlatformOs) FromRef(str js.Ref) PlatformOs {
   859  	return PlatformOs(bindings.ConstOfPlatformOs(str))
   860  }
   861  
   862  func (x PlatformOs) String() (string, bool) {
   863  	switch x {
   864  	case PlatformOs_MAC:
   865  		return "mac", true
   866  	case PlatformOs_WIN:
   867  		return "win", true
   868  	case PlatformOs_ANDROID:
   869  		return "android", true
   870  	case PlatformOs_CROS:
   871  		return "cros", true
   872  	case PlatformOs_LINUX:
   873  		return "linux", true
   874  	case PlatformOs_OPENBSD:
   875  		return "openbsd", true
   876  	case PlatformOs_FUCHSIA:
   877  		return "fuchsia", true
   878  	default:
   879  		return "", false
   880  	}
   881  }
   882  
   883  type PlatformInfo struct {
   884  	// Arch is "PlatformInfo.arch"
   885  	//
   886  	// Required
   887  	Arch PlatformArch
   888  	// NaclArch is "PlatformInfo.nacl_arch"
   889  	//
   890  	// Required
   891  	NaclArch PlatformNaclArch
   892  	// Os is "PlatformInfo.os"
   893  	//
   894  	// Required
   895  	Os PlatformOs
   896  
   897  	FFI_USE bool
   898  }
   899  
   900  // FromRef calls UpdateFrom and returns a PlatformInfo with all fields set.
   901  func (p PlatformInfo) FromRef(ref js.Ref) PlatformInfo {
   902  	p.UpdateFrom(ref)
   903  	return p
   904  }
   905  
   906  // New creates a new PlatformInfo in the application heap.
   907  func (p PlatformInfo) New() js.Ref {
   908  	return bindings.PlatformInfoJSLoad(
   909  		js.Pointer(&p), js.True, 0,
   910  	)
   911  }
   912  
   913  // UpdateFrom copies value of all fields of the heap object to p.
   914  func (p *PlatformInfo) UpdateFrom(ref js.Ref) {
   915  	bindings.PlatformInfoJSStore(
   916  		js.Pointer(p), ref,
   917  	)
   918  }
   919  
   920  // Update writes all fields of the p to the heap object referenced by ref.
   921  func (p *PlatformInfo) Update(ref js.Ref) {
   922  	bindings.PlatformInfoJSLoad(
   923  		js.Pointer(p), js.False, ref,
   924  	)
   925  }
   926  
   927  // FreeMembers frees fields with heap reference, if recursive is true
   928  // free all heap references reachable from p.
   929  func (p *PlatformInfo) FreeMembers(recursive bool) {
   930  }
   931  
   932  type PortFieldDisconnectFunc func(this js.Ref) js.Ref
   933  
   934  func (fn PortFieldDisconnectFunc) Register() js.Func[func()] {
   935  	return js.RegisterCallback[func()](
   936  		fn, abi.FuncPCABIInternal(fn),
   937  	)
   938  }
   939  
   940  func (fn PortFieldDisconnectFunc) DispatchCallback(
   941  	targetPC uintptr, ctx *js.CallbackContext,
   942  ) {
   943  	args := ctx.Args()
   944  	if len(args) != 0+1 /* js this */ ||
   945  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
   946  		js.ThrowInvalidCallbackInvocation()
   947  	}
   948  
   949  	if ctx.Return(fn(
   950  		args[0],
   951  	)) {
   952  		return
   953  	}
   954  
   955  	js.ThrowCallbackValueNotReturned()
   956  }
   957  
   958  type PortFieldDisconnect[T any] struct {
   959  	Fn  func(arg T, this js.Ref) js.Ref
   960  	Arg T
   961  }
   962  
   963  func (cb *PortFieldDisconnect[T]) Register() js.Func[func()] {
   964  	return js.RegisterCallback[func()](
   965  		cb, abi.FuncPCABIInternal(cb.Fn),
   966  	)
   967  }
   968  
   969  func (cb *PortFieldDisconnect[T]) DispatchCallback(
   970  	targetPC uintptr, ctx *js.CallbackContext,
   971  ) {
   972  	args := ctx.Args()
   973  	if len(args) != 0+1 /* js this */ ||
   974  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
   975  		js.ThrowInvalidCallbackInvocation()
   976  	}
   977  
   978  	if ctx.Return(cb.Fn(
   979  		cb.Arg,
   980  		args[0],
   981  	)) {
   982  		return
   983  	}
   984  
   985  	js.ThrowCallbackValueNotReturned()
   986  }
   987  
   988  type PortFieldPostMessageFunc func(this js.Ref, message js.Any) js.Ref
   989  
   990  func (fn PortFieldPostMessageFunc) Register() js.Func[func(message js.Any)] {
   991  	return js.RegisterCallback[func(message js.Any)](
   992  		fn, abi.FuncPCABIInternal(fn),
   993  	)
   994  }
   995  
   996  func (fn PortFieldPostMessageFunc) DispatchCallback(
   997  	targetPC uintptr, ctx *js.CallbackContext,
   998  ) {
   999  	args := ctx.Args()
  1000  	if len(args) != 1+1 /* js this */ ||
  1001  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  1002  		js.ThrowInvalidCallbackInvocation()
  1003  	}
  1004  
  1005  	if ctx.Return(fn(
  1006  		args[0],
  1007  
  1008  		js.Any{}.FromRef(args[0+1]),
  1009  	)) {
  1010  		return
  1011  	}
  1012  
  1013  	js.ThrowCallbackValueNotReturned()
  1014  }
  1015  
  1016  type PortFieldPostMessage[T any] struct {
  1017  	Fn  func(arg T, this js.Ref, message js.Any) js.Ref
  1018  	Arg T
  1019  }
  1020  
  1021  func (cb *PortFieldPostMessage[T]) Register() js.Func[func(message js.Any)] {
  1022  	return js.RegisterCallback[func(message js.Any)](
  1023  		cb, abi.FuncPCABIInternal(cb.Fn),
  1024  	)
  1025  }
  1026  
  1027  func (cb *PortFieldPostMessage[T]) DispatchCallback(
  1028  	targetPC uintptr, ctx *js.CallbackContext,
  1029  ) {
  1030  	args := ctx.Args()
  1031  	if len(args) != 1+1 /* js this */ ||
  1032  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  1033  		js.ThrowInvalidCallbackInvocation()
  1034  	}
  1035  
  1036  	if ctx.Return(cb.Fn(
  1037  		cb.Arg,
  1038  		args[0],
  1039  
  1040  		js.Any{}.FromRef(args[0+1]),
  1041  	)) {
  1042  		return
  1043  	}
  1044  
  1045  	js.ThrowCallbackValueNotReturned()
  1046  }
  1047  
  1048  type Port struct {
  1049  	// Disconnect is "Port.disconnect"
  1050  	//
  1051  	// Required
  1052  	Disconnect js.Func[func()]
  1053  	// Name is "Port.name"
  1054  	//
  1055  	// Required
  1056  	Name js.String
  1057  	// PostMessage is "Port.postMessage"
  1058  	//
  1059  	// Required
  1060  	PostMessage js.Func[func(message js.Any)]
  1061  	// Sender is "Port.sender"
  1062  	//
  1063  	// Optional
  1064  	//
  1065  	// NOTE: Sender.FFI_USE MUST be set to true to get Sender used.
  1066  	Sender MessageSender
  1067  
  1068  	FFI_USE bool
  1069  }
  1070  
  1071  // FromRef calls UpdateFrom and returns a Port with all fields set.
  1072  func (p Port) FromRef(ref js.Ref) Port {
  1073  	p.UpdateFrom(ref)
  1074  	return p
  1075  }
  1076  
  1077  // New creates a new Port in the application heap.
  1078  func (p Port) New() js.Ref {
  1079  	return bindings.PortJSLoad(
  1080  		js.Pointer(&p), js.True, 0,
  1081  	)
  1082  }
  1083  
  1084  // UpdateFrom copies value of all fields of the heap object to p.
  1085  func (p *Port) UpdateFrom(ref js.Ref) {
  1086  	bindings.PortJSStore(
  1087  		js.Pointer(p), ref,
  1088  	)
  1089  }
  1090  
  1091  // Update writes all fields of the p to the heap object referenced by ref.
  1092  func (p *Port) Update(ref js.Ref) {
  1093  	bindings.PortJSLoad(
  1094  		js.Pointer(p), js.False, ref,
  1095  	)
  1096  }
  1097  
  1098  // FreeMembers frees fields with heap reference, if recursive is true
  1099  // free all heap references reachable from p.
  1100  func (p *Port) FreeMembers(recursive bool) {
  1101  	js.Free(
  1102  		p.Disconnect.Ref(),
  1103  		p.Name.Ref(),
  1104  		p.PostMessage.Ref(),
  1105  	)
  1106  	p.Disconnect = p.Disconnect.FromRef(js.Undefined)
  1107  	p.Name = p.Name.FromRef(js.Undefined)
  1108  	p.PostMessage = p.PostMessage.FromRef(js.Undefined)
  1109  	if recursive {
  1110  		p.Sender.FreeMembers(true)
  1111  	}
  1112  }
  1113  
  1114  type RequestUpdateCheckStatus uint32
  1115  
  1116  const (
  1117  	_ RequestUpdateCheckStatus = iota
  1118  
  1119  	RequestUpdateCheckStatus_THROTTLED
  1120  	RequestUpdateCheckStatus_NO_UPDATE
  1121  	RequestUpdateCheckStatus_UPDATE_AVAILABLE
  1122  )
  1123  
  1124  func (RequestUpdateCheckStatus) FromRef(str js.Ref) RequestUpdateCheckStatus {
  1125  	return RequestUpdateCheckStatus(bindings.ConstOfRequestUpdateCheckStatus(str))
  1126  }
  1127  
  1128  func (x RequestUpdateCheckStatus) String() (string, bool) {
  1129  	switch x {
  1130  	case RequestUpdateCheckStatus_THROTTLED:
  1131  		return "throttled", true
  1132  	case RequestUpdateCheckStatus_NO_UPDATE:
  1133  		return "no_update", true
  1134  	case RequestUpdateCheckStatus_UPDATE_AVAILABLE:
  1135  		return "update_available", true
  1136  	default:
  1137  		return "", false
  1138  	}
  1139  }
  1140  
  1141  type RequestUpdateCheckReturnType struct {
  1142  	// Status is "RequestUpdateCheckReturnType.status"
  1143  	//
  1144  	// Required
  1145  	Status RequestUpdateCheckStatus
  1146  	// Version is "RequestUpdateCheckReturnType.version"
  1147  	//
  1148  	// Optional
  1149  	Version js.String
  1150  
  1151  	FFI_USE bool
  1152  }
  1153  
  1154  // FromRef calls UpdateFrom and returns a RequestUpdateCheckReturnType with all fields set.
  1155  func (p RequestUpdateCheckReturnType) FromRef(ref js.Ref) RequestUpdateCheckReturnType {
  1156  	p.UpdateFrom(ref)
  1157  	return p
  1158  }
  1159  
  1160  // New creates a new RequestUpdateCheckReturnType in the application heap.
  1161  func (p RequestUpdateCheckReturnType) New() js.Ref {
  1162  	return bindings.RequestUpdateCheckReturnTypeJSLoad(
  1163  		js.Pointer(&p), js.True, 0,
  1164  	)
  1165  }
  1166  
  1167  // UpdateFrom copies value of all fields of the heap object to p.
  1168  func (p *RequestUpdateCheckReturnType) UpdateFrom(ref js.Ref) {
  1169  	bindings.RequestUpdateCheckReturnTypeJSStore(
  1170  		js.Pointer(p), ref,
  1171  	)
  1172  }
  1173  
  1174  // Update writes all fields of the p to the heap object referenced by ref.
  1175  func (p *RequestUpdateCheckReturnType) Update(ref js.Ref) {
  1176  	bindings.RequestUpdateCheckReturnTypeJSLoad(
  1177  		js.Pointer(p), js.False, ref,
  1178  	)
  1179  }
  1180  
  1181  // FreeMembers frees fields with heap reference, if recursive is true
  1182  // free all heap references reachable from p.
  1183  func (p *RequestUpdateCheckReturnType) FreeMembers(recursive bool) {
  1184  	js.Free(
  1185  		p.Version.Ref(),
  1186  	)
  1187  	p.Version = p.Version.FromRef(js.Undefined)
  1188  }
  1189  
  1190  type SendMessageArgOptions struct {
  1191  	// IncludeTlsChannelId is "SendMessageArgOptions.includeTlsChannelId"
  1192  	//
  1193  	// Optional
  1194  	//
  1195  	// NOTE: FFI_USE_IncludeTlsChannelId MUST be set to true to make this field effective.
  1196  	IncludeTlsChannelId bool
  1197  
  1198  	FFI_USE_IncludeTlsChannelId bool // for IncludeTlsChannelId.
  1199  
  1200  	FFI_USE bool
  1201  }
  1202  
  1203  // FromRef calls UpdateFrom and returns a SendMessageArgOptions with all fields set.
  1204  func (p SendMessageArgOptions) FromRef(ref js.Ref) SendMessageArgOptions {
  1205  	p.UpdateFrom(ref)
  1206  	return p
  1207  }
  1208  
  1209  // New creates a new SendMessageArgOptions in the application heap.
  1210  func (p SendMessageArgOptions) New() js.Ref {
  1211  	return bindings.SendMessageArgOptionsJSLoad(
  1212  		js.Pointer(&p), js.True, 0,
  1213  	)
  1214  }
  1215  
  1216  // UpdateFrom copies value of all fields of the heap object to p.
  1217  func (p *SendMessageArgOptions) UpdateFrom(ref js.Ref) {
  1218  	bindings.SendMessageArgOptionsJSStore(
  1219  		js.Pointer(p), ref,
  1220  	)
  1221  }
  1222  
  1223  // Update writes all fields of the p to the heap object referenced by ref.
  1224  func (p *SendMessageArgOptions) Update(ref js.Ref) {
  1225  	bindings.SendMessageArgOptionsJSLoad(
  1226  		js.Pointer(p), js.False, ref,
  1227  	)
  1228  }
  1229  
  1230  // FreeMembers frees fields with heap reference, if recursive is true
  1231  // free all heap references reachable from p.
  1232  func (p *SendMessageArgOptions) FreeMembers(recursive bool) {
  1233  }
  1234  
  1235  // HasFuncConnect returns true if the function "WEBEXT.runtime.connect" exists.
  1236  func HasFuncConnect() bool {
  1237  	return js.True == bindings.HasFuncConnect()
  1238  }
  1239  
  1240  // FuncConnect returns the function "WEBEXT.runtime.connect".
  1241  func FuncConnect() (fn js.Func[func(extensionId js.String, connectInfo ConnectArgConnectInfo) Port]) {
  1242  	bindings.FuncConnect(
  1243  		js.Pointer(&fn),
  1244  	)
  1245  	return
  1246  }
  1247  
  1248  // Connect calls the function "WEBEXT.runtime.connect" directly.
  1249  func Connect(extensionId js.String, connectInfo ConnectArgConnectInfo) (ret Port) {
  1250  	bindings.CallConnect(
  1251  		js.Pointer(&ret),
  1252  		extensionId.Ref(),
  1253  		js.Pointer(&connectInfo),
  1254  	)
  1255  
  1256  	return
  1257  }
  1258  
  1259  // TryConnect calls the function "WEBEXT.runtime.connect"
  1260  // in a try/catch block and returns (_, err, ok = false) when it went through
  1261  // the catch clause.
  1262  func TryConnect(extensionId js.String, connectInfo ConnectArgConnectInfo) (ret Port, exception js.Any, ok bool) {
  1263  	ok = js.True == bindings.TryConnect(
  1264  		js.Pointer(&ret), js.Pointer(&exception),
  1265  		extensionId.Ref(),
  1266  		js.Pointer(&connectInfo),
  1267  	)
  1268  
  1269  	return
  1270  }
  1271  
  1272  // HasFuncConnectNative returns true if the function "WEBEXT.runtime.connectNative" exists.
  1273  func HasFuncConnectNative() bool {
  1274  	return js.True == bindings.HasFuncConnectNative()
  1275  }
  1276  
  1277  // FuncConnectNative returns the function "WEBEXT.runtime.connectNative".
  1278  func FuncConnectNative() (fn js.Func[func(application js.String) Port]) {
  1279  	bindings.FuncConnectNative(
  1280  		js.Pointer(&fn),
  1281  	)
  1282  	return
  1283  }
  1284  
  1285  // ConnectNative calls the function "WEBEXT.runtime.connectNative" directly.
  1286  func ConnectNative(application js.String) (ret Port) {
  1287  	bindings.CallConnectNative(
  1288  		js.Pointer(&ret),
  1289  		application.Ref(),
  1290  	)
  1291  
  1292  	return
  1293  }
  1294  
  1295  // TryConnectNative calls the function "WEBEXT.runtime.connectNative"
  1296  // in a try/catch block and returns (_, err, ok = false) when it went through
  1297  // the catch clause.
  1298  func TryConnectNative(application js.String) (ret Port, exception js.Any, ok bool) {
  1299  	ok = js.True == bindings.TryConnectNative(
  1300  		js.Pointer(&ret), js.Pointer(&exception),
  1301  		application.Ref(),
  1302  	)
  1303  
  1304  	return
  1305  }
  1306  
  1307  // HasFuncGetBackgroundPage returns true if the function "WEBEXT.runtime.getBackgroundPage" exists.
  1308  func HasFuncGetBackgroundPage() bool {
  1309  	return js.True == bindings.HasFuncGetBackgroundPage()
  1310  }
  1311  
  1312  // FuncGetBackgroundPage returns the function "WEBEXT.runtime.getBackgroundPage".
  1313  func FuncGetBackgroundPage() (fn js.Func[func() js.Promise[js.Any]]) {
  1314  	bindings.FuncGetBackgroundPage(
  1315  		js.Pointer(&fn),
  1316  	)
  1317  	return
  1318  }
  1319  
  1320  // GetBackgroundPage calls the function "WEBEXT.runtime.getBackgroundPage" directly.
  1321  func GetBackgroundPage() (ret js.Promise[js.Any]) {
  1322  	bindings.CallGetBackgroundPage(
  1323  		js.Pointer(&ret),
  1324  	)
  1325  
  1326  	return
  1327  }
  1328  
  1329  // TryGetBackgroundPage calls the function "WEBEXT.runtime.getBackgroundPage"
  1330  // in a try/catch block and returns (_, err, ok = false) when it went through
  1331  // the catch clause.
  1332  func TryGetBackgroundPage() (ret js.Promise[js.Any], exception js.Any, ok bool) {
  1333  	ok = js.True == bindings.TryGetBackgroundPage(
  1334  		js.Pointer(&ret), js.Pointer(&exception),
  1335  	)
  1336  
  1337  	return
  1338  }
  1339  
  1340  // HasFuncGetContexts returns true if the function "WEBEXT.runtime.getContexts" exists.
  1341  func HasFuncGetContexts() bool {
  1342  	return js.True == bindings.HasFuncGetContexts()
  1343  }
  1344  
  1345  // FuncGetContexts returns the function "WEBEXT.runtime.getContexts".
  1346  func FuncGetContexts() (fn js.Func[func(filter ContextFilter) js.Promise[js.Array[ExtensionContext]]]) {
  1347  	bindings.FuncGetContexts(
  1348  		js.Pointer(&fn),
  1349  	)
  1350  	return
  1351  }
  1352  
  1353  // GetContexts calls the function "WEBEXT.runtime.getContexts" directly.
  1354  func GetContexts(filter ContextFilter) (ret js.Promise[js.Array[ExtensionContext]]) {
  1355  	bindings.CallGetContexts(
  1356  		js.Pointer(&ret),
  1357  		js.Pointer(&filter),
  1358  	)
  1359  
  1360  	return
  1361  }
  1362  
  1363  // TryGetContexts calls the function "WEBEXT.runtime.getContexts"
  1364  // in a try/catch block and returns (_, err, ok = false) when it went through
  1365  // the catch clause.
  1366  func TryGetContexts(filter ContextFilter) (ret js.Promise[js.Array[ExtensionContext]], exception js.Any, ok bool) {
  1367  	ok = js.True == bindings.TryGetContexts(
  1368  		js.Pointer(&ret), js.Pointer(&exception),
  1369  		js.Pointer(&filter),
  1370  	)
  1371  
  1372  	return
  1373  }
  1374  
  1375  // HasFuncGetManifest returns true if the function "WEBEXT.runtime.getManifest" exists.
  1376  func HasFuncGetManifest() bool {
  1377  	return js.True == bindings.HasFuncGetManifest()
  1378  }
  1379  
  1380  // FuncGetManifest returns the function "WEBEXT.runtime.getManifest".
  1381  func FuncGetManifest() (fn js.Func[func() js.Any]) {
  1382  	bindings.FuncGetManifest(
  1383  		js.Pointer(&fn),
  1384  	)
  1385  	return
  1386  }
  1387  
  1388  // GetManifest calls the function "WEBEXT.runtime.getManifest" directly.
  1389  func GetManifest() (ret js.Any) {
  1390  	bindings.CallGetManifest(
  1391  		js.Pointer(&ret),
  1392  	)
  1393  
  1394  	return
  1395  }
  1396  
  1397  // TryGetManifest calls the function "WEBEXT.runtime.getManifest"
  1398  // in a try/catch block and returns (_, err, ok = false) when it went through
  1399  // the catch clause.
  1400  func TryGetManifest() (ret js.Any, exception js.Any, ok bool) {
  1401  	ok = js.True == bindings.TryGetManifest(
  1402  		js.Pointer(&ret), js.Pointer(&exception),
  1403  	)
  1404  
  1405  	return
  1406  }
  1407  
  1408  // HasFuncGetPackageDirectoryEntry returns true if the function "WEBEXT.runtime.getPackageDirectoryEntry" exists.
  1409  func HasFuncGetPackageDirectoryEntry() bool {
  1410  	return js.True == bindings.HasFuncGetPackageDirectoryEntry()
  1411  }
  1412  
  1413  // FuncGetPackageDirectoryEntry returns the function "WEBEXT.runtime.getPackageDirectoryEntry".
  1414  func FuncGetPackageDirectoryEntry() (fn js.Func[func(callback js.Func[func(directoryEntry js.Any)])]) {
  1415  	bindings.FuncGetPackageDirectoryEntry(
  1416  		js.Pointer(&fn),
  1417  	)
  1418  	return
  1419  }
  1420  
  1421  // GetPackageDirectoryEntry calls the function "WEBEXT.runtime.getPackageDirectoryEntry" directly.
  1422  func GetPackageDirectoryEntry(callback js.Func[func(directoryEntry js.Any)]) (ret js.Void) {
  1423  	bindings.CallGetPackageDirectoryEntry(
  1424  		js.Pointer(&ret),
  1425  		callback.Ref(),
  1426  	)
  1427  
  1428  	return
  1429  }
  1430  
  1431  // TryGetPackageDirectoryEntry calls the function "WEBEXT.runtime.getPackageDirectoryEntry"
  1432  // in a try/catch block and returns (_, err, ok = false) when it went through
  1433  // the catch clause.
  1434  func TryGetPackageDirectoryEntry(callback js.Func[func(directoryEntry js.Any)]) (ret js.Void, exception js.Any, ok bool) {
  1435  	ok = js.True == bindings.TryGetPackageDirectoryEntry(
  1436  		js.Pointer(&ret), js.Pointer(&exception),
  1437  		callback.Ref(),
  1438  	)
  1439  
  1440  	return
  1441  }
  1442  
  1443  // HasFuncGetPlatformInfo returns true if the function "WEBEXT.runtime.getPlatformInfo" exists.
  1444  func HasFuncGetPlatformInfo() bool {
  1445  	return js.True == bindings.HasFuncGetPlatformInfo()
  1446  }
  1447  
  1448  // FuncGetPlatformInfo returns the function "WEBEXT.runtime.getPlatformInfo".
  1449  func FuncGetPlatformInfo() (fn js.Func[func() js.Promise[PlatformInfo]]) {
  1450  	bindings.FuncGetPlatformInfo(
  1451  		js.Pointer(&fn),
  1452  	)
  1453  	return
  1454  }
  1455  
  1456  // GetPlatformInfo calls the function "WEBEXT.runtime.getPlatformInfo" directly.
  1457  func GetPlatformInfo() (ret js.Promise[PlatformInfo]) {
  1458  	bindings.CallGetPlatformInfo(
  1459  		js.Pointer(&ret),
  1460  	)
  1461  
  1462  	return
  1463  }
  1464  
  1465  // TryGetPlatformInfo calls the function "WEBEXT.runtime.getPlatformInfo"
  1466  // in a try/catch block and returns (_, err, ok = false) when it went through
  1467  // the catch clause.
  1468  func TryGetPlatformInfo() (ret js.Promise[PlatformInfo], exception js.Any, ok bool) {
  1469  	ok = js.True == bindings.TryGetPlatformInfo(
  1470  		js.Pointer(&ret), js.Pointer(&exception),
  1471  	)
  1472  
  1473  	return
  1474  }
  1475  
  1476  // HasFuncGetURL returns true if the function "WEBEXT.runtime.getURL" exists.
  1477  func HasFuncGetURL() bool {
  1478  	return js.True == bindings.HasFuncGetURL()
  1479  }
  1480  
  1481  // FuncGetURL returns the function "WEBEXT.runtime.getURL".
  1482  func FuncGetURL() (fn js.Func[func(path js.String) js.String]) {
  1483  	bindings.FuncGetURL(
  1484  		js.Pointer(&fn),
  1485  	)
  1486  	return
  1487  }
  1488  
  1489  // GetURL calls the function "WEBEXT.runtime.getURL" directly.
  1490  func GetURL(path js.String) (ret js.String) {
  1491  	bindings.CallGetURL(
  1492  		js.Pointer(&ret),
  1493  		path.Ref(),
  1494  	)
  1495  
  1496  	return
  1497  }
  1498  
  1499  // TryGetURL calls the function "WEBEXT.runtime.getURL"
  1500  // in a try/catch block and returns (_, err, ok = false) when it went through
  1501  // the catch clause.
  1502  func TryGetURL(path js.String) (ret js.String, exception js.Any, ok bool) {
  1503  	ok = js.True == bindings.TryGetURL(
  1504  		js.Pointer(&ret), js.Pointer(&exception),
  1505  		path.Ref(),
  1506  	)
  1507  
  1508  	return
  1509  }
  1510  
  1511  // Id returns the value of property "WEBEXT.runtime.id".
  1512  //
  1513  // The returned bool will be false if there is no such property.
  1514  func Id() (ret js.String, ok bool) {
  1515  	ok = js.True == bindings.GetId(
  1516  		js.Pointer(&ret),
  1517  	)
  1518  
  1519  	return
  1520  }
  1521  
  1522  // SetId sets the value of property "WEBEXT.runtime.id" to val.
  1523  //
  1524  // It returns false if the property cannot be set.
  1525  func SetId(val js.String) bool {
  1526  	return js.True == bindings.SetId(
  1527  		val.Ref())
  1528  }
  1529  
  1530  // LastError returns the value of property "WEBEXT.runtime.lastError".
  1531  //
  1532  // The returned bool will be false if there is no such property.
  1533  func LastError() (ret LastErrorProperty, ok bool) {
  1534  	ok = js.True == bindings.GetLastError(
  1535  		js.Pointer(&ret),
  1536  	)
  1537  
  1538  	return
  1539  }
  1540  
  1541  // SetLastError sets the value of property "WEBEXT.runtime.lastError" to val.
  1542  //
  1543  // It returns false if the property cannot be set.
  1544  func SetLastError(val LastErrorProperty) bool {
  1545  	return js.True == bindings.SetLastError(
  1546  		js.Pointer(&val))
  1547  }
  1548  
  1549  type OnBrowserUpdateAvailableEventCallbackFunc func(this js.Ref) js.Ref
  1550  
  1551  func (fn OnBrowserUpdateAvailableEventCallbackFunc) Register() js.Func[func()] {
  1552  	return js.RegisterCallback[func()](
  1553  		fn, abi.FuncPCABIInternal(fn),
  1554  	)
  1555  }
  1556  
  1557  func (fn OnBrowserUpdateAvailableEventCallbackFunc) DispatchCallback(
  1558  	targetPC uintptr, ctx *js.CallbackContext,
  1559  ) {
  1560  	args := ctx.Args()
  1561  	if len(args) != 0+1 /* js this */ ||
  1562  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  1563  		js.ThrowInvalidCallbackInvocation()
  1564  	}
  1565  
  1566  	if ctx.Return(fn(
  1567  		args[0],
  1568  	)) {
  1569  		return
  1570  	}
  1571  
  1572  	js.ThrowCallbackValueNotReturned()
  1573  }
  1574  
  1575  type OnBrowserUpdateAvailableEventCallback[T any] struct {
  1576  	Fn  func(arg T, this js.Ref) js.Ref
  1577  	Arg T
  1578  }
  1579  
  1580  func (cb *OnBrowserUpdateAvailableEventCallback[T]) Register() js.Func[func()] {
  1581  	return js.RegisterCallback[func()](
  1582  		cb, abi.FuncPCABIInternal(cb.Fn),
  1583  	)
  1584  }
  1585  
  1586  func (cb *OnBrowserUpdateAvailableEventCallback[T]) DispatchCallback(
  1587  	targetPC uintptr, ctx *js.CallbackContext,
  1588  ) {
  1589  	args := ctx.Args()
  1590  	if len(args) != 0+1 /* js this */ ||
  1591  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  1592  		js.ThrowInvalidCallbackInvocation()
  1593  	}
  1594  
  1595  	if ctx.Return(cb.Fn(
  1596  		cb.Arg,
  1597  		args[0],
  1598  	)) {
  1599  		return
  1600  	}
  1601  
  1602  	js.ThrowCallbackValueNotReturned()
  1603  }
  1604  
  1605  // HasFuncOnBrowserUpdateAvailable returns true if the function "WEBEXT.runtime.onBrowserUpdateAvailable.addListener" exists.
  1606  func HasFuncOnBrowserUpdateAvailable() bool {
  1607  	return js.True == bindings.HasFuncOnBrowserUpdateAvailable()
  1608  }
  1609  
  1610  // FuncOnBrowserUpdateAvailable returns the function "WEBEXT.runtime.onBrowserUpdateAvailable.addListener".
  1611  func FuncOnBrowserUpdateAvailable() (fn js.Func[func(callback js.Func[func()])]) {
  1612  	bindings.FuncOnBrowserUpdateAvailable(
  1613  		js.Pointer(&fn),
  1614  	)
  1615  	return
  1616  }
  1617  
  1618  // OnBrowserUpdateAvailable calls the function "WEBEXT.runtime.onBrowserUpdateAvailable.addListener" directly.
  1619  func OnBrowserUpdateAvailable(callback js.Func[func()]) (ret js.Void) {
  1620  	bindings.CallOnBrowserUpdateAvailable(
  1621  		js.Pointer(&ret),
  1622  		callback.Ref(),
  1623  	)
  1624  
  1625  	return
  1626  }
  1627  
  1628  // TryOnBrowserUpdateAvailable calls the function "WEBEXT.runtime.onBrowserUpdateAvailable.addListener"
  1629  // in a try/catch block and returns (_, err, ok = false) when it went through
  1630  // the catch clause.
  1631  func TryOnBrowserUpdateAvailable(callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
  1632  	ok = js.True == bindings.TryOnBrowserUpdateAvailable(
  1633  		js.Pointer(&ret), js.Pointer(&exception),
  1634  		callback.Ref(),
  1635  	)
  1636  
  1637  	return
  1638  }
  1639  
  1640  // HasFuncOffBrowserUpdateAvailable returns true if the function "WEBEXT.runtime.onBrowserUpdateAvailable.removeListener" exists.
  1641  func HasFuncOffBrowserUpdateAvailable() bool {
  1642  	return js.True == bindings.HasFuncOffBrowserUpdateAvailable()
  1643  }
  1644  
  1645  // FuncOffBrowserUpdateAvailable returns the function "WEBEXT.runtime.onBrowserUpdateAvailable.removeListener".
  1646  func FuncOffBrowserUpdateAvailable() (fn js.Func[func(callback js.Func[func()])]) {
  1647  	bindings.FuncOffBrowserUpdateAvailable(
  1648  		js.Pointer(&fn),
  1649  	)
  1650  	return
  1651  }
  1652  
  1653  // OffBrowserUpdateAvailable calls the function "WEBEXT.runtime.onBrowserUpdateAvailable.removeListener" directly.
  1654  func OffBrowserUpdateAvailable(callback js.Func[func()]) (ret js.Void) {
  1655  	bindings.CallOffBrowserUpdateAvailable(
  1656  		js.Pointer(&ret),
  1657  		callback.Ref(),
  1658  	)
  1659  
  1660  	return
  1661  }
  1662  
  1663  // TryOffBrowserUpdateAvailable calls the function "WEBEXT.runtime.onBrowserUpdateAvailable.removeListener"
  1664  // in a try/catch block and returns (_, err, ok = false) when it went through
  1665  // the catch clause.
  1666  func TryOffBrowserUpdateAvailable(callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
  1667  	ok = js.True == bindings.TryOffBrowserUpdateAvailable(
  1668  		js.Pointer(&ret), js.Pointer(&exception),
  1669  		callback.Ref(),
  1670  	)
  1671  
  1672  	return
  1673  }
  1674  
  1675  // HasFuncHasOnBrowserUpdateAvailable returns true if the function "WEBEXT.runtime.onBrowserUpdateAvailable.hasListener" exists.
  1676  func HasFuncHasOnBrowserUpdateAvailable() bool {
  1677  	return js.True == bindings.HasFuncHasOnBrowserUpdateAvailable()
  1678  }
  1679  
  1680  // FuncHasOnBrowserUpdateAvailable returns the function "WEBEXT.runtime.onBrowserUpdateAvailable.hasListener".
  1681  func FuncHasOnBrowserUpdateAvailable() (fn js.Func[func(callback js.Func[func()]) bool]) {
  1682  	bindings.FuncHasOnBrowserUpdateAvailable(
  1683  		js.Pointer(&fn),
  1684  	)
  1685  	return
  1686  }
  1687  
  1688  // HasOnBrowserUpdateAvailable calls the function "WEBEXT.runtime.onBrowserUpdateAvailable.hasListener" directly.
  1689  func HasOnBrowserUpdateAvailable(callback js.Func[func()]) (ret bool) {
  1690  	bindings.CallHasOnBrowserUpdateAvailable(
  1691  		js.Pointer(&ret),
  1692  		callback.Ref(),
  1693  	)
  1694  
  1695  	return
  1696  }
  1697  
  1698  // TryHasOnBrowserUpdateAvailable calls the function "WEBEXT.runtime.onBrowserUpdateAvailable.hasListener"
  1699  // in a try/catch block and returns (_, err, ok = false) when it went through
  1700  // the catch clause.
  1701  func TryHasOnBrowserUpdateAvailable(callback js.Func[func()]) (ret bool, exception js.Any, ok bool) {
  1702  	ok = js.True == bindings.TryHasOnBrowserUpdateAvailable(
  1703  		js.Pointer(&ret), js.Pointer(&exception),
  1704  		callback.Ref(),
  1705  	)
  1706  
  1707  	return
  1708  }
  1709  
  1710  type OnConnectEventCallbackFunc func(this js.Ref, port *Port) js.Ref
  1711  
  1712  func (fn OnConnectEventCallbackFunc) Register() js.Func[func(port *Port)] {
  1713  	return js.RegisterCallback[func(port *Port)](
  1714  		fn, abi.FuncPCABIInternal(fn),
  1715  	)
  1716  }
  1717  
  1718  func (fn OnConnectEventCallbackFunc) DispatchCallback(
  1719  	targetPC uintptr, ctx *js.CallbackContext,
  1720  ) {
  1721  	args := ctx.Args()
  1722  	if len(args) != 1+1 /* js this */ ||
  1723  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  1724  		js.ThrowInvalidCallbackInvocation()
  1725  	}
  1726  	var arg0 Port
  1727  	arg0.UpdateFrom(args[0+1])
  1728  	defer arg0.FreeMembers(true)
  1729  
  1730  	if ctx.Return(fn(
  1731  		args[0],
  1732  
  1733  		mark.NoEscape(&arg0),
  1734  	)) {
  1735  		return
  1736  	}
  1737  
  1738  	js.ThrowCallbackValueNotReturned()
  1739  }
  1740  
  1741  type OnConnectEventCallback[T any] struct {
  1742  	Fn  func(arg T, this js.Ref, port *Port) js.Ref
  1743  	Arg T
  1744  }
  1745  
  1746  func (cb *OnConnectEventCallback[T]) Register() js.Func[func(port *Port)] {
  1747  	return js.RegisterCallback[func(port *Port)](
  1748  		cb, abi.FuncPCABIInternal(cb.Fn),
  1749  	)
  1750  }
  1751  
  1752  func (cb *OnConnectEventCallback[T]) DispatchCallback(
  1753  	targetPC uintptr, ctx *js.CallbackContext,
  1754  ) {
  1755  	args := ctx.Args()
  1756  	if len(args) != 1+1 /* js this */ ||
  1757  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  1758  		js.ThrowInvalidCallbackInvocation()
  1759  	}
  1760  	var arg0 Port
  1761  	arg0.UpdateFrom(args[0+1])
  1762  	defer arg0.FreeMembers(true)
  1763  
  1764  	if ctx.Return(cb.Fn(
  1765  		cb.Arg,
  1766  		args[0],
  1767  
  1768  		mark.NoEscape(&arg0),
  1769  	)) {
  1770  		return
  1771  	}
  1772  
  1773  	js.ThrowCallbackValueNotReturned()
  1774  }
  1775  
  1776  // HasFuncOnConnect returns true if the function "WEBEXT.runtime.onConnect.addListener" exists.
  1777  func HasFuncOnConnect() bool {
  1778  	return js.True == bindings.HasFuncOnConnect()
  1779  }
  1780  
  1781  // FuncOnConnect returns the function "WEBEXT.runtime.onConnect.addListener".
  1782  func FuncOnConnect() (fn js.Func[func(callback js.Func[func(port *Port)])]) {
  1783  	bindings.FuncOnConnect(
  1784  		js.Pointer(&fn),
  1785  	)
  1786  	return
  1787  }
  1788  
  1789  // OnConnect calls the function "WEBEXT.runtime.onConnect.addListener" directly.
  1790  func OnConnect(callback js.Func[func(port *Port)]) (ret js.Void) {
  1791  	bindings.CallOnConnect(
  1792  		js.Pointer(&ret),
  1793  		callback.Ref(),
  1794  	)
  1795  
  1796  	return
  1797  }
  1798  
  1799  // TryOnConnect calls the function "WEBEXT.runtime.onConnect.addListener"
  1800  // in a try/catch block and returns (_, err, ok = false) when it went through
  1801  // the catch clause.
  1802  func TryOnConnect(callback js.Func[func(port *Port)]) (ret js.Void, exception js.Any, ok bool) {
  1803  	ok = js.True == bindings.TryOnConnect(
  1804  		js.Pointer(&ret), js.Pointer(&exception),
  1805  		callback.Ref(),
  1806  	)
  1807  
  1808  	return
  1809  }
  1810  
  1811  // HasFuncOffConnect returns true if the function "WEBEXT.runtime.onConnect.removeListener" exists.
  1812  func HasFuncOffConnect() bool {
  1813  	return js.True == bindings.HasFuncOffConnect()
  1814  }
  1815  
  1816  // FuncOffConnect returns the function "WEBEXT.runtime.onConnect.removeListener".
  1817  func FuncOffConnect() (fn js.Func[func(callback js.Func[func(port *Port)])]) {
  1818  	bindings.FuncOffConnect(
  1819  		js.Pointer(&fn),
  1820  	)
  1821  	return
  1822  }
  1823  
  1824  // OffConnect calls the function "WEBEXT.runtime.onConnect.removeListener" directly.
  1825  func OffConnect(callback js.Func[func(port *Port)]) (ret js.Void) {
  1826  	bindings.CallOffConnect(
  1827  		js.Pointer(&ret),
  1828  		callback.Ref(),
  1829  	)
  1830  
  1831  	return
  1832  }
  1833  
  1834  // TryOffConnect calls the function "WEBEXT.runtime.onConnect.removeListener"
  1835  // in a try/catch block and returns (_, err, ok = false) when it went through
  1836  // the catch clause.
  1837  func TryOffConnect(callback js.Func[func(port *Port)]) (ret js.Void, exception js.Any, ok bool) {
  1838  	ok = js.True == bindings.TryOffConnect(
  1839  		js.Pointer(&ret), js.Pointer(&exception),
  1840  		callback.Ref(),
  1841  	)
  1842  
  1843  	return
  1844  }
  1845  
  1846  // HasFuncHasOnConnect returns true if the function "WEBEXT.runtime.onConnect.hasListener" exists.
  1847  func HasFuncHasOnConnect() bool {
  1848  	return js.True == bindings.HasFuncHasOnConnect()
  1849  }
  1850  
  1851  // FuncHasOnConnect returns the function "WEBEXT.runtime.onConnect.hasListener".
  1852  func FuncHasOnConnect() (fn js.Func[func(callback js.Func[func(port *Port)]) bool]) {
  1853  	bindings.FuncHasOnConnect(
  1854  		js.Pointer(&fn),
  1855  	)
  1856  	return
  1857  }
  1858  
  1859  // HasOnConnect calls the function "WEBEXT.runtime.onConnect.hasListener" directly.
  1860  func HasOnConnect(callback js.Func[func(port *Port)]) (ret bool) {
  1861  	bindings.CallHasOnConnect(
  1862  		js.Pointer(&ret),
  1863  		callback.Ref(),
  1864  	)
  1865  
  1866  	return
  1867  }
  1868  
  1869  // TryHasOnConnect calls the function "WEBEXT.runtime.onConnect.hasListener"
  1870  // in a try/catch block and returns (_, err, ok = false) when it went through
  1871  // the catch clause.
  1872  func TryHasOnConnect(callback js.Func[func(port *Port)]) (ret bool, exception js.Any, ok bool) {
  1873  	ok = js.True == bindings.TryHasOnConnect(
  1874  		js.Pointer(&ret), js.Pointer(&exception),
  1875  		callback.Ref(),
  1876  	)
  1877  
  1878  	return
  1879  }
  1880  
  1881  type OnConnectExternalEventCallbackFunc func(this js.Ref, port *Port) js.Ref
  1882  
  1883  func (fn OnConnectExternalEventCallbackFunc) Register() js.Func[func(port *Port)] {
  1884  	return js.RegisterCallback[func(port *Port)](
  1885  		fn, abi.FuncPCABIInternal(fn),
  1886  	)
  1887  }
  1888  
  1889  func (fn OnConnectExternalEventCallbackFunc) DispatchCallback(
  1890  	targetPC uintptr, ctx *js.CallbackContext,
  1891  ) {
  1892  	args := ctx.Args()
  1893  	if len(args) != 1+1 /* js this */ ||
  1894  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  1895  		js.ThrowInvalidCallbackInvocation()
  1896  	}
  1897  	var arg0 Port
  1898  	arg0.UpdateFrom(args[0+1])
  1899  	defer arg0.FreeMembers(true)
  1900  
  1901  	if ctx.Return(fn(
  1902  		args[0],
  1903  
  1904  		mark.NoEscape(&arg0),
  1905  	)) {
  1906  		return
  1907  	}
  1908  
  1909  	js.ThrowCallbackValueNotReturned()
  1910  }
  1911  
  1912  type OnConnectExternalEventCallback[T any] struct {
  1913  	Fn  func(arg T, this js.Ref, port *Port) js.Ref
  1914  	Arg T
  1915  }
  1916  
  1917  func (cb *OnConnectExternalEventCallback[T]) Register() js.Func[func(port *Port)] {
  1918  	return js.RegisterCallback[func(port *Port)](
  1919  		cb, abi.FuncPCABIInternal(cb.Fn),
  1920  	)
  1921  }
  1922  
  1923  func (cb *OnConnectExternalEventCallback[T]) DispatchCallback(
  1924  	targetPC uintptr, ctx *js.CallbackContext,
  1925  ) {
  1926  	args := ctx.Args()
  1927  	if len(args) != 1+1 /* js this */ ||
  1928  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  1929  		js.ThrowInvalidCallbackInvocation()
  1930  	}
  1931  	var arg0 Port
  1932  	arg0.UpdateFrom(args[0+1])
  1933  	defer arg0.FreeMembers(true)
  1934  
  1935  	if ctx.Return(cb.Fn(
  1936  		cb.Arg,
  1937  		args[0],
  1938  
  1939  		mark.NoEscape(&arg0),
  1940  	)) {
  1941  		return
  1942  	}
  1943  
  1944  	js.ThrowCallbackValueNotReturned()
  1945  }
  1946  
  1947  // HasFuncOnConnectExternal returns true if the function "WEBEXT.runtime.onConnectExternal.addListener" exists.
  1948  func HasFuncOnConnectExternal() bool {
  1949  	return js.True == bindings.HasFuncOnConnectExternal()
  1950  }
  1951  
  1952  // FuncOnConnectExternal returns the function "WEBEXT.runtime.onConnectExternal.addListener".
  1953  func FuncOnConnectExternal() (fn js.Func[func(callback js.Func[func(port *Port)])]) {
  1954  	bindings.FuncOnConnectExternal(
  1955  		js.Pointer(&fn),
  1956  	)
  1957  	return
  1958  }
  1959  
  1960  // OnConnectExternal calls the function "WEBEXT.runtime.onConnectExternal.addListener" directly.
  1961  func OnConnectExternal(callback js.Func[func(port *Port)]) (ret js.Void) {
  1962  	bindings.CallOnConnectExternal(
  1963  		js.Pointer(&ret),
  1964  		callback.Ref(),
  1965  	)
  1966  
  1967  	return
  1968  }
  1969  
  1970  // TryOnConnectExternal calls the function "WEBEXT.runtime.onConnectExternal.addListener"
  1971  // in a try/catch block and returns (_, err, ok = false) when it went through
  1972  // the catch clause.
  1973  func TryOnConnectExternal(callback js.Func[func(port *Port)]) (ret js.Void, exception js.Any, ok bool) {
  1974  	ok = js.True == bindings.TryOnConnectExternal(
  1975  		js.Pointer(&ret), js.Pointer(&exception),
  1976  		callback.Ref(),
  1977  	)
  1978  
  1979  	return
  1980  }
  1981  
  1982  // HasFuncOffConnectExternal returns true if the function "WEBEXT.runtime.onConnectExternal.removeListener" exists.
  1983  func HasFuncOffConnectExternal() bool {
  1984  	return js.True == bindings.HasFuncOffConnectExternal()
  1985  }
  1986  
  1987  // FuncOffConnectExternal returns the function "WEBEXT.runtime.onConnectExternal.removeListener".
  1988  func FuncOffConnectExternal() (fn js.Func[func(callback js.Func[func(port *Port)])]) {
  1989  	bindings.FuncOffConnectExternal(
  1990  		js.Pointer(&fn),
  1991  	)
  1992  	return
  1993  }
  1994  
  1995  // OffConnectExternal calls the function "WEBEXT.runtime.onConnectExternal.removeListener" directly.
  1996  func OffConnectExternal(callback js.Func[func(port *Port)]) (ret js.Void) {
  1997  	bindings.CallOffConnectExternal(
  1998  		js.Pointer(&ret),
  1999  		callback.Ref(),
  2000  	)
  2001  
  2002  	return
  2003  }
  2004  
  2005  // TryOffConnectExternal calls the function "WEBEXT.runtime.onConnectExternal.removeListener"
  2006  // in a try/catch block and returns (_, err, ok = false) when it went through
  2007  // the catch clause.
  2008  func TryOffConnectExternal(callback js.Func[func(port *Port)]) (ret js.Void, exception js.Any, ok bool) {
  2009  	ok = js.True == bindings.TryOffConnectExternal(
  2010  		js.Pointer(&ret), js.Pointer(&exception),
  2011  		callback.Ref(),
  2012  	)
  2013  
  2014  	return
  2015  }
  2016  
  2017  // HasFuncHasOnConnectExternal returns true if the function "WEBEXT.runtime.onConnectExternal.hasListener" exists.
  2018  func HasFuncHasOnConnectExternal() bool {
  2019  	return js.True == bindings.HasFuncHasOnConnectExternal()
  2020  }
  2021  
  2022  // FuncHasOnConnectExternal returns the function "WEBEXT.runtime.onConnectExternal.hasListener".
  2023  func FuncHasOnConnectExternal() (fn js.Func[func(callback js.Func[func(port *Port)]) bool]) {
  2024  	bindings.FuncHasOnConnectExternal(
  2025  		js.Pointer(&fn),
  2026  	)
  2027  	return
  2028  }
  2029  
  2030  // HasOnConnectExternal calls the function "WEBEXT.runtime.onConnectExternal.hasListener" directly.
  2031  func HasOnConnectExternal(callback js.Func[func(port *Port)]) (ret bool) {
  2032  	bindings.CallHasOnConnectExternal(
  2033  		js.Pointer(&ret),
  2034  		callback.Ref(),
  2035  	)
  2036  
  2037  	return
  2038  }
  2039  
  2040  // TryHasOnConnectExternal calls the function "WEBEXT.runtime.onConnectExternal.hasListener"
  2041  // in a try/catch block and returns (_, err, ok = false) when it went through
  2042  // the catch clause.
  2043  func TryHasOnConnectExternal(callback js.Func[func(port *Port)]) (ret bool, exception js.Any, ok bool) {
  2044  	ok = js.True == bindings.TryHasOnConnectExternal(
  2045  		js.Pointer(&ret), js.Pointer(&exception),
  2046  		callback.Ref(),
  2047  	)
  2048  
  2049  	return
  2050  }
  2051  
  2052  type OnConnectNativeEventCallbackFunc func(this js.Ref, port *Port) js.Ref
  2053  
  2054  func (fn OnConnectNativeEventCallbackFunc) Register() js.Func[func(port *Port)] {
  2055  	return js.RegisterCallback[func(port *Port)](
  2056  		fn, abi.FuncPCABIInternal(fn),
  2057  	)
  2058  }
  2059  
  2060  func (fn OnConnectNativeEventCallbackFunc) DispatchCallback(
  2061  	targetPC uintptr, ctx *js.CallbackContext,
  2062  ) {
  2063  	args := ctx.Args()
  2064  	if len(args) != 1+1 /* js this */ ||
  2065  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  2066  		js.ThrowInvalidCallbackInvocation()
  2067  	}
  2068  	var arg0 Port
  2069  	arg0.UpdateFrom(args[0+1])
  2070  	defer arg0.FreeMembers(true)
  2071  
  2072  	if ctx.Return(fn(
  2073  		args[0],
  2074  
  2075  		mark.NoEscape(&arg0),
  2076  	)) {
  2077  		return
  2078  	}
  2079  
  2080  	js.ThrowCallbackValueNotReturned()
  2081  }
  2082  
  2083  type OnConnectNativeEventCallback[T any] struct {
  2084  	Fn  func(arg T, this js.Ref, port *Port) js.Ref
  2085  	Arg T
  2086  }
  2087  
  2088  func (cb *OnConnectNativeEventCallback[T]) Register() js.Func[func(port *Port)] {
  2089  	return js.RegisterCallback[func(port *Port)](
  2090  		cb, abi.FuncPCABIInternal(cb.Fn),
  2091  	)
  2092  }
  2093  
  2094  func (cb *OnConnectNativeEventCallback[T]) DispatchCallback(
  2095  	targetPC uintptr, ctx *js.CallbackContext,
  2096  ) {
  2097  	args := ctx.Args()
  2098  	if len(args) != 1+1 /* js this */ ||
  2099  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  2100  		js.ThrowInvalidCallbackInvocation()
  2101  	}
  2102  	var arg0 Port
  2103  	arg0.UpdateFrom(args[0+1])
  2104  	defer arg0.FreeMembers(true)
  2105  
  2106  	if ctx.Return(cb.Fn(
  2107  		cb.Arg,
  2108  		args[0],
  2109  
  2110  		mark.NoEscape(&arg0),
  2111  	)) {
  2112  		return
  2113  	}
  2114  
  2115  	js.ThrowCallbackValueNotReturned()
  2116  }
  2117  
  2118  // HasFuncOnConnectNative returns true if the function "WEBEXT.runtime.onConnectNative.addListener" exists.
  2119  func HasFuncOnConnectNative() bool {
  2120  	return js.True == bindings.HasFuncOnConnectNative()
  2121  }
  2122  
  2123  // FuncOnConnectNative returns the function "WEBEXT.runtime.onConnectNative.addListener".
  2124  func FuncOnConnectNative() (fn js.Func[func(callback js.Func[func(port *Port)])]) {
  2125  	bindings.FuncOnConnectNative(
  2126  		js.Pointer(&fn),
  2127  	)
  2128  	return
  2129  }
  2130  
  2131  // OnConnectNative calls the function "WEBEXT.runtime.onConnectNative.addListener" directly.
  2132  func OnConnectNative(callback js.Func[func(port *Port)]) (ret js.Void) {
  2133  	bindings.CallOnConnectNative(
  2134  		js.Pointer(&ret),
  2135  		callback.Ref(),
  2136  	)
  2137  
  2138  	return
  2139  }
  2140  
  2141  // TryOnConnectNative calls the function "WEBEXT.runtime.onConnectNative.addListener"
  2142  // in a try/catch block and returns (_, err, ok = false) when it went through
  2143  // the catch clause.
  2144  func TryOnConnectNative(callback js.Func[func(port *Port)]) (ret js.Void, exception js.Any, ok bool) {
  2145  	ok = js.True == bindings.TryOnConnectNative(
  2146  		js.Pointer(&ret), js.Pointer(&exception),
  2147  		callback.Ref(),
  2148  	)
  2149  
  2150  	return
  2151  }
  2152  
  2153  // HasFuncOffConnectNative returns true if the function "WEBEXT.runtime.onConnectNative.removeListener" exists.
  2154  func HasFuncOffConnectNative() bool {
  2155  	return js.True == bindings.HasFuncOffConnectNative()
  2156  }
  2157  
  2158  // FuncOffConnectNative returns the function "WEBEXT.runtime.onConnectNative.removeListener".
  2159  func FuncOffConnectNative() (fn js.Func[func(callback js.Func[func(port *Port)])]) {
  2160  	bindings.FuncOffConnectNative(
  2161  		js.Pointer(&fn),
  2162  	)
  2163  	return
  2164  }
  2165  
  2166  // OffConnectNative calls the function "WEBEXT.runtime.onConnectNative.removeListener" directly.
  2167  func OffConnectNative(callback js.Func[func(port *Port)]) (ret js.Void) {
  2168  	bindings.CallOffConnectNative(
  2169  		js.Pointer(&ret),
  2170  		callback.Ref(),
  2171  	)
  2172  
  2173  	return
  2174  }
  2175  
  2176  // TryOffConnectNative calls the function "WEBEXT.runtime.onConnectNative.removeListener"
  2177  // in a try/catch block and returns (_, err, ok = false) when it went through
  2178  // the catch clause.
  2179  func TryOffConnectNative(callback js.Func[func(port *Port)]) (ret js.Void, exception js.Any, ok bool) {
  2180  	ok = js.True == bindings.TryOffConnectNative(
  2181  		js.Pointer(&ret), js.Pointer(&exception),
  2182  		callback.Ref(),
  2183  	)
  2184  
  2185  	return
  2186  }
  2187  
  2188  // HasFuncHasOnConnectNative returns true if the function "WEBEXT.runtime.onConnectNative.hasListener" exists.
  2189  func HasFuncHasOnConnectNative() bool {
  2190  	return js.True == bindings.HasFuncHasOnConnectNative()
  2191  }
  2192  
  2193  // FuncHasOnConnectNative returns the function "WEBEXT.runtime.onConnectNative.hasListener".
  2194  func FuncHasOnConnectNative() (fn js.Func[func(callback js.Func[func(port *Port)]) bool]) {
  2195  	bindings.FuncHasOnConnectNative(
  2196  		js.Pointer(&fn),
  2197  	)
  2198  	return
  2199  }
  2200  
  2201  // HasOnConnectNative calls the function "WEBEXT.runtime.onConnectNative.hasListener" directly.
  2202  func HasOnConnectNative(callback js.Func[func(port *Port)]) (ret bool) {
  2203  	bindings.CallHasOnConnectNative(
  2204  		js.Pointer(&ret),
  2205  		callback.Ref(),
  2206  	)
  2207  
  2208  	return
  2209  }
  2210  
  2211  // TryHasOnConnectNative calls the function "WEBEXT.runtime.onConnectNative.hasListener"
  2212  // in a try/catch block and returns (_, err, ok = false) when it went through
  2213  // the catch clause.
  2214  func TryHasOnConnectNative(callback js.Func[func(port *Port)]) (ret bool, exception js.Any, ok bool) {
  2215  	ok = js.True == bindings.TryHasOnConnectNative(
  2216  		js.Pointer(&ret), js.Pointer(&exception),
  2217  		callback.Ref(),
  2218  	)
  2219  
  2220  	return
  2221  }
  2222  
  2223  type OnInstalledEventCallbackFunc func(this js.Ref, details *OnInstalledArgDetails) js.Ref
  2224  
  2225  func (fn OnInstalledEventCallbackFunc) Register() js.Func[func(details *OnInstalledArgDetails)] {
  2226  	return js.RegisterCallback[func(details *OnInstalledArgDetails)](
  2227  		fn, abi.FuncPCABIInternal(fn),
  2228  	)
  2229  }
  2230  
  2231  func (fn OnInstalledEventCallbackFunc) DispatchCallback(
  2232  	targetPC uintptr, ctx *js.CallbackContext,
  2233  ) {
  2234  	args := ctx.Args()
  2235  	if len(args) != 1+1 /* js this */ ||
  2236  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  2237  		js.ThrowInvalidCallbackInvocation()
  2238  	}
  2239  	var arg0 OnInstalledArgDetails
  2240  	arg0.UpdateFrom(args[0+1])
  2241  	defer arg0.FreeMembers(true)
  2242  
  2243  	if ctx.Return(fn(
  2244  		args[0],
  2245  
  2246  		mark.NoEscape(&arg0),
  2247  	)) {
  2248  		return
  2249  	}
  2250  
  2251  	js.ThrowCallbackValueNotReturned()
  2252  }
  2253  
  2254  type OnInstalledEventCallback[T any] struct {
  2255  	Fn  func(arg T, this js.Ref, details *OnInstalledArgDetails) js.Ref
  2256  	Arg T
  2257  }
  2258  
  2259  func (cb *OnInstalledEventCallback[T]) Register() js.Func[func(details *OnInstalledArgDetails)] {
  2260  	return js.RegisterCallback[func(details *OnInstalledArgDetails)](
  2261  		cb, abi.FuncPCABIInternal(cb.Fn),
  2262  	)
  2263  }
  2264  
  2265  func (cb *OnInstalledEventCallback[T]) DispatchCallback(
  2266  	targetPC uintptr, ctx *js.CallbackContext,
  2267  ) {
  2268  	args := ctx.Args()
  2269  	if len(args) != 1+1 /* js this */ ||
  2270  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  2271  		js.ThrowInvalidCallbackInvocation()
  2272  	}
  2273  	var arg0 OnInstalledArgDetails
  2274  	arg0.UpdateFrom(args[0+1])
  2275  	defer arg0.FreeMembers(true)
  2276  
  2277  	if ctx.Return(cb.Fn(
  2278  		cb.Arg,
  2279  		args[0],
  2280  
  2281  		mark.NoEscape(&arg0),
  2282  	)) {
  2283  		return
  2284  	}
  2285  
  2286  	js.ThrowCallbackValueNotReturned()
  2287  }
  2288  
  2289  // HasFuncOnInstalled returns true if the function "WEBEXT.runtime.onInstalled.addListener" exists.
  2290  func HasFuncOnInstalled() bool {
  2291  	return js.True == bindings.HasFuncOnInstalled()
  2292  }
  2293  
  2294  // FuncOnInstalled returns the function "WEBEXT.runtime.onInstalled.addListener".
  2295  func FuncOnInstalled() (fn js.Func[func(callback js.Func[func(details *OnInstalledArgDetails)])]) {
  2296  	bindings.FuncOnInstalled(
  2297  		js.Pointer(&fn),
  2298  	)
  2299  	return
  2300  }
  2301  
  2302  // OnInstalled calls the function "WEBEXT.runtime.onInstalled.addListener" directly.
  2303  func OnInstalled(callback js.Func[func(details *OnInstalledArgDetails)]) (ret js.Void) {
  2304  	bindings.CallOnInstalled(
  2305  		js.Pointer(&ret),
  2306  		callback.Ref(),
  2307  	)
  2308  
  2309  	return
  2310  }
  2311  
  2312  // TryOnInstalled calls the function "WEBEXT.runtime.onInstalled.addListener"
  2313  // in a try/catch block and returns (_, err, ok = false) when it went through
  2314  // the catch clause.
  2315  func TryOnInstalled(callback js.Func[func(details *OnInstalledArgDetails)]) (ret js.Void, exception js.Any, ok bool) {
  2316  	ok = js.True == bindings.TryOnInstalled(
  2317  		js.Pointer(&ret), js.Pointer(&exception),
  2318  		callback.Ref(),
  2319  	)
  2320  
  2321  	return
  2322  }
  2323  
  2324  // HasFuncOffInstalled returns true if the function "WEBEXT.runtime.onInstalled.removeListener" exists.
  2325  func HasFuncOffInstalled() bool {
  2326  	return js.True == bindings.HasFuncOffInstalled()
  2327  }
  2328  
  2329  // FuncOffInstalled returns the function "WEBEXT.runtime.onInstalled.removeListener".
  2330  func FuncOffInstalled() (fn js.Func[func(callback js.Func[func(details *OnInstalledArgDetails)])]) {
  2331  	bindings.FuncOffInstalled(
  2332  		js.Pointer(&fn),
  2333  	)
  2334  	return
  2335  }
  2336  
  2337  // OffInstalled calls the function "WEBEXT.runtime.onInstalled.removeListener" directly.
  2338  func OffInstalled(callback js.Func[func(details *OnInstalledArgDetails)]) (ret js.Void) {
  2339  	bindings.CallOffInstalled(
  2340  		js.Pointer(&ret),
  2341  		callback.Ref(),
  2342  	)
  2343  
  2344  	return
  2345  }
  2346  
  2347  // TryOffInstalled calls the function "WEBEXT.runtime.onInstalled.removeListener"
  2348  // in a try/catch block and returns (_, err, ok = false) when it went through
  2349  // the catch clause.
  2350  func TryOffInstalled(callback js.Func[func(details *OnInstalledArgDetails)]) (ret js.Void, exception js.Any, ok bool) {
  2351  	ok = js.True == bindings.TryOffInstalled(
  2352  		js.Pointer(&ret), js.Pointer(&exception),
  2353  		callback.Ref(),
  2354  	)
  2355  
  2356  	return
  2357  }
  2358  
  2359  // HasFuncHasOnInstalled returns true if the function "WEBEXT.runtime.onInstalled.hasListener" exists.
  2360  func HasFuncHasOnInstalled() bool {
  2361  	return js.True == bindings.HasFuncHasOnInstalled()
  2362  }
  2363  
  2364  // FuncHasOnInstalled returns the function "WEBEXT.runtime.onInstalled.hasListener".
  2365  func FuncHasOnInstalled() (fn js.Func[func(callback js.Func[func(details *OnInstalledArgDetails)]) bool]) {
  2366  	bindings.FuncHasOnInstalled(
  2367  		js.Pointer(&fn),
  2368  	)
  2369  	return
  2370  }
  2371  
  2372  // HasOnInstalled calls the function "WEBEXT.runtime.onInstalled.hasListener" directly.
  2373  func HasOnInstalled(callback js.Func[func(details *OnInstalledArgDetails)]) (ret bool) {
  2374  	bindings.CallHasOnInstalled(
  2375  		js.Pointer(&ret),
  2376  		callback.Ref(),
  2377  	)
  2378  
  2379  	return
  2380  }
  2381  
  2382  // TryHasOnInstalled calls the function "WEBEXT.runtime.onInstalled.hasListener"
  2383  // in a try/catch block and returns (_, err, ok = false) when it went through
  2384  // the catch clause.
  2385  func TryHasOnInstalled(callback js.Func[func(details *OnInstalledArgDetails)]) (ret bool, exception js.Any, ok bool) {
  2386  	ok = js.True == bindings.TryHasOnInstalled(
  2387  		js.Pointer(&ret), js.Pointer(&exception),
  2388  		callback.Ref(),
  2389  	)
  2390  
  2391  	return
  2392  }
  2393  
  2394  type OnMessageEventCallbackFunc func(this js.Ref, message js.Any, sender *MessageSender, sendResponse js.Func[func()]) js.Ref
  2395  
  2396  func (fn OnMessageEventCallbackFunc) Register() js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool] {
  2397  	return js.RegisterCallback[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool](
  2398  		fn, abi.FuncPCABIInternal(fn),
  2399  	)
  2400  }
  2401  
  2402  func (fn OnMessageEventCallbackFunc) DispatchCallback(
  2403  	targetPC uintptr, ctx *js.CallbackContext,
  2404  ) {
  2405  	args := ctx.Args()
  2406  	if len(args) != 3+1 /* js this */ ||
  2407  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  2408  		js.ThrowInvalidCallbackInvocation()
  2409  	}
  2410  	var arg1 MessageSender
  2411  	arg1.UpdateFrom(args[1+1])
  2412  	defer arg1.FreeMembers(true)
  2413  
  2414  	if ctx.Return(fn(
  2415  		args[0],
  2416  
  2417  		js.Any{}.FromRef(args[0+1]),
  2418  		mark.NoEscape(&arg1),
  2419  		js.Func[func()]{}.FromRef(args[2+1]),
  2420  	)) {
  2421  		return
  2422  	}
  2423  
  2424  	js.ThrowCallbackValueNotReturned()
  2425  }
  2426  
  2427  type OnMessageEventCallback[T any] struct {
  2428  	Fn  func(arg T, this js.Ref, message js.Any, sender *MessageSender, sendResponse js.Func[func()]) js.Ref
  2429  	Arg T
  2430  }
  2431  
  2432  func (cb *OnMessageEventCallback[T]) Register() js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool] {
  2433  	return js.RegisterCallback[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool](
  2434  		cb, abi.FuncPCABIInternal(cb.Fn),
  2435  	)
  2436  }
  2437  
  2438  func (cb *OnMessageEventCallback[T]) DispatchCallback(
  2439  	targetPC uintptr, ctx *js.CallbackContext,
  2440  ) {
  2441  	args := ctx.Args()
  2442  	if len(args) != 3+1 /* js this */ ||
  2443  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  2444  		js.ThrowInvalidCallbackInvocation()
  2445  	}
  2446  	var arg1 MessageSender
  2447  	arg1.UpdateFrom(args[1+1])
  2448  	defer arg1.FreeMembers(true)
  2449  
  2450  	if ctx.Return(cb.Fn(
  2451  		cb.Arg,
  2452  		args[0],
  2453  
  2454  		js.Any{}.FromRef(args[0+1]),
  2455  		mark.NoEscape(&arg1),
  2456  		js.Func[func()]{}.FromRef(args[2+1]),
  2457  	)) {
  2458  		return
  2459  	}
  2460  
  2461  	js.ThrowCallbackValueNotReturned()
  2462  }
  2463  
  2464  // HasFuncOnMessage returns true if the function "WEBEXT.runtime.onMessage.addListener" exists.
  2465  func HasFuncOnMessage() bool {
  2466  	return js.True == bindings.HasFuncOnMessage()
  2467  }
  2468  
  2469  // FuncOnMessage returns the function "WEBEXT.runtime.onMessage.addListener".
  2470  func FuncOnMessage() (fn js.Func[func(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool])]) {
  2471  	bindings.FuncOnMessage(
  2472  		js.Pointer(&fn),
  2473  	)
  2474  	return
  2475  }
  2476  
  2477  // OnMessage calls the function "WEBEXT.runtime.onMessage.addListener" directly.
  2478  func OnMessage(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret js.Void) {
  2479  	bindings.CallOnMessage(
  2480  		js.Pointer(&ret),
  2481  		callback.Ref(),
  2482  	)
  2483  
  2484  	return
  2485  }
  2486  
  2487  // TryOnMessage calls the function "WEBEXT.runtime.onMessage.addListener"
  2488  // in a try/catch block and returns (_, err, ok = false) when it went through
  2489  // the catch clause.
  2490  func TryOnMessage(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret js.Void, exception js.Any, ok bool) {
  2491  	ok = js.True == bindings.TryOnMessage(
  2492  		js.Pointer(&ret), js.Pointer(&exception),
  2493  		callback.Ref(),
  2494  	)
  2495  
  2496  	return
  2497  }
  2498  
  2499  // HasFuncOffMessage returns true if the function "WEBEXT.runtime.onMessage.removeListener" exists.
  2500  func HasFuncOffMessage() bool {
  2501  	return js.True == bindings.HasFuncOffMessage()
  2502  }
  2503  
  2504  // FuncOffMessage returns the function "WEBEXT.runtime.onMessage.removeListener".
  2505  func FuncOffMessage() (fn js.Func[func(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool])]) {
  2506  	bindings.FuncOffMessage(
  2507  		js.Pointer(&fn),
  2508  	)
  2509  	return
  2510  }
  2511  
  2512  // OffMessage calls the function "WEBEXT.runtime.onMessage.removeListener" directly.
  2513  func OffMessage(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret js.Void) {
  2514  	bindings.CallOffMessage(
  2515  		js.Pointer(&ret),
  2516  		callback.Ref(),
  2517  	)
  2518  
  2519  	return
  2520  }
  2521  
  2522  // TryOffMessage calls the function "WEBEXT.runtime.onMessage.removeListener"
  2523  // in a try/catch block and returns (_, err, ok = false) when it went through
  2524  // the catch clause.
  2525  func TryOffMessage(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret js.Void, exception js.Any, ok bool) {
  2526  	ok = js.True == bindings.TryOffMessage(
  2527  		js.Pointer(&ret), js.Pointer(&exception),
  2528  		callback.Ref(),
  2529  	)
  2530  
  2531  	return
  2532  }
  2533  
  2534  // HasFuncHasOnMessage returns true if the function "WEBEXT.runtime.onMessage.hasListener" exists.
  2535  func HasFuncHasOnMessage() bool {
  2536  	return js.True == bindings.HasFuncHasOnMessage()
  2537  }
  2538  
  2539  // FuncHasOnMessage returns the function "WEBEXT.runtime.onMessage.hasListener".
  2540  func FuncHasOnMessage() (fn js.Func[func(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) bool]) {
  2541  	bindings.FuncHasOnMessage(
  2542  		js.Pointer(&fn),
  2543  	)
  2544  	return
  2545  }
  2546  
  2547  // HasOnMessage calls the function "WEBEXT.runtime.onMessage.hasListener" directly.
  2548  func HasOnMessage(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret bool) {
  2549  	bindings.CallHasOnMessage(
  2550  		js.Pointer(&ret),
  2551  		callback.Ref(),
  2552  	)
  2553  
  2554  	return
  2555  }
  2556  
  2557  // TryHasOnMessage calls the function "WEBEXT.runtime.onMessage.hasListener"
  2558  // in a try/catch block and returns (_, err, ok = false) when it went through
  2559  // the catch clause.
  2560  func TryHasOnMessage(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret bool, exception js.Any, ok bool) {
  2561  	ok = js.True == bindings.TryHasOnMessage(
  2562  		js.Pointer(&ret), js.Pointer(&exception),
  2563  		callback.Ref(),
  2564  	)
  2565  
  2566  	return
  2567  }
  2568  
  2569  type OnMessageExternalEventCallbackFunc func(this js.Ref, message js.Any, sender *MessageSender, sendResponse js.Func[func()]) js.Ref
  2570  
  2571  func (fn OnMessageExternalEventCallbackFunc) Register() js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool] {
  2572  	return js.RegisterCallback[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool](
  2573  		fn, abi.FuncPCABIInternal(fn),
  2574  	)
  2575  }
  2576  
  2577  func (fn OnMessageExternalEventCallbackFunc) DispatchCallback(
  2578  	targetPC uintptr, ctx *js.CallbackContext,
  2579  ) {
  2580  	args := ctx.Args()
  2581  	if len(args) != 3+1 /* js this */ ||
  2582  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  2583  		js.ThrowInvalidCallbackInvocation()
  2584  	}
  2585  	var arg1 MessageSender
  2586  	arg1.UpdateFrom(args[1+1])
  2587  	defer arg1.FreeMembers(true)
  2588  
  2589  	if ctx.Return(fn(
  2590  		args[0],
  2591  
  2592  		js.Any{}.FromRef(args[0+1]),
  2593  		mark.NoEscape(&arg1),
  2594  		js.Func[func()]{}.FromRef(args[2+1]),
  2595  	)) {
  2596  		return
  2597  	}
  2598  
  2599  	js.ThrowCallbackValueNotReturned()
  2600  }
  2601  
  2602  type OnMessageExternalEventCallback[T any] struct {
  2603  	Fn  func(arg T, this js.Ref, message js.Any, sender *MessageSender, sendResponse js.Func[func()]) js.Ref
  2604  	Arg T
  2605  }
  2606  
  2607  func (cb *OnMessageExternalEventCallback[T]) Register() js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool] {
  2608  	return js.RegisterCallback[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool](
  2609  		cb, abi.FuncPCABIInternal(cb.Fn),
  2610  	)
  2611  }
  2612  
  2613  func (cb *OnMessageExternalEventCallback[T]) DispatchCallback(
  2614  	targetPC uintptr, ctx *js.CallbackContext,
  2615  ) {
  2616  	args := ctx.Args()
  2617  	if len(args) != 3+1 /* js this */ ||
  2618  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  2619  		js.ThrowInvalidCallbackInvocation()
  2620  	}
  2621  	var arg1 MessageSender
  2622  	arg1.UpdateFrom(args[1+1])
  2623  	defer arg1.FreeMembers(true)
  2624  
  2625  	if ctx.Return(cb.Fn(
  2626  		cb.Arg,
  2627  		args[0],
  2628  
  2629  		js.Any{}.FromRef(args[0+1]),
  2630  		mark.NoEscape(&arg1),
  2631  		js.Func[func()]{}.FromRef(args[2+1]),
  2632  	)) {
  2633  		return
  2634  	}
  2635  
  2636  	js.ThrowCallbackValueNotReturned()
  2637  }
  2638  
  2639  // HasFuncOnMessageExternal returns true if the function "WEBEXT.runtime.onMessageExternal.addListener" exists.
  2640  func HasFuncOnMessageExternal() bool {
  2641  	return js.True == bindings.HasFuncOnMessageExternal()
  2642  }
  2643  
  2644  // FuncOnMessageExternal returns the function "WEBEXT.runtime.onMessageExternal.addListener".
  2645  func FuncOnMessageExternal() (fn js.Func[func(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool])]) {
  2646  	bindings.FuncOnMessageExternal(
  2647  		js.Pointer(&fn),
  2648  	)
  2649  	return
  2650  }
  2651  
  2652  // OnMessageExternal calls the function "WEBEXT.runtime.onMessageExternal.addListener" directly.
  2653  func OnMessageExternal(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret js.Void) {
  2654  	bindings.CallOnMessageExternal(
  2655  		js.Pointer(&ret),
  2656  		callback.Ref(),
  2657  	)
  2658  
  2659  	return
  2660  }
  2661  
  2662  // TryOnMessageExternal calls the function "WEBEXT.runtime.onMessageExternal.addListener"
  2663  // in a try/catch block and returns (_, err, ok = false) when it went through
  2664  // the catch clause.
  2665  func TryOnMessageExternal(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret js.Void, exception js.Any, ok bool) {
  2666  	ok = js.True == bindings.TryOnMessageExternal(
  2667  		js.Pointer(&ret), js.Pointer(&exception),
  2668  		callback.Ref(),
  2669  	)
  2670  
  2671  	return
  2672  }
  2673  
  2674  // HasFuncOffMessageExternal returns true if the function "WEBEXT.runtime.onMessageExternal.removeListener" exists.
  2675  func HasFuncOffMessageExternal() bool {
  2676  	return js.True == bindings.HasFuncOffMessageExternal()
  2677  }
  2678  
  2679  // FuncOffMessageExternal returns the function "WEBEXT.runtime.onMessageExternal.removeListener".
  2680  func FuncOffMessageExternal() (fn js.Func[func(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool])]) {
  2681  	bindings.FuncOffMessageExternal(
  2682  		js.Pointer(&fn),
  2683  	)
  2684  	return
  2685  }
  2686  
  2687  // OffMessageExternal calls the function "WEBEXT.runtime.onMessageExternal.removeListener" directly.
  2688  func OffMessageExternal(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret js.Void) {
  2689  	bindings.CallOffMessageExternal(
  2690  		js.Pointer(&ret),
  2691  		callback.Ref(),
  2692  	)
  2693  
  2694  	return
  2695  }
  2696  
  2697  // TryOffMessageExternal calls the function "WEBEXT.runtime.onMessageExternal.removeListener"
  2698  // in a try/catch block and returns (_, err, ok = false) when it went through
  2699  // the catch clause.
  2700  func TryOffMessageExternal(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret js.Void, exception js.Any, ok bool) {
  2701  	ok = js.True == bindings.TryOffMessageExternal(
  2702  		js.Pointer(&ret), js.Pointer(&exception),
  2703  		callback.Ref(),
  2704  	)
  2705  
  2706  	return
  2707  }
  2708  
  2709  // HasFuncHasOnMessageExternal returns true if the function "WEBEXT.runtime.onMessageExternal.hasListener" exists.
  2710  func HasFuncHasOnMessageExternal() bool {
  2711  	return js.True == bindings.HasFuncHasOnMessageExternal()
  2712  }
  2713  
  2714  // FuncHasOnMessageExternal returns the function "WEBEXT.runtime.onMessageExternal.hasListener".
  2715  func FuncHasOnMessageExternal() (fn js.Func[func(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) bool]) {
  2716  	bindings.FuncHasOnMessageExternal(
  2717  		js.Pointer(&fn),
  2718  	)
  2719  	return
  2720  }
  2721  
  2722  // HasOnMessageExternal calls the function "WEBEXT.runtime.onMessageExternal.hasListener" directly.
  2723  func HasOnMessageExternal(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret bool) {
  2724  	bindings.CallHasOnMessageExternal(
  2725  		js.Pointer(&ret),
  2726  		callback.Ref(),
  2727  	)
  2728  
  2729  	return
  2730  }
  2731  
  2732  // TryHasOnMessageExternal calls the function "WEBEXT.runtime.onMessageExternal.hasListener"
  2733  // in a try/catch block and returns (_, err, ok = false) when it went through
  2734  // the catch clause.
  2735  func TryHasOnMessageExternal(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret bool, exception js.Any, ok bool) {
  2736  	ok = js.True == bindings.TryHasOnMessageExternal(
  2737  		js.Pointer(&ret), js.Pointer(&exception),
  2738  		callback.Ref(),
  2739  	)
  2740  
  2741  	return
  2742  }
  2743  
  2744  type OnRestartRequiredEventCallbackFunc func(this js.Ref, reason OnRestartRequiredReason) js.Ref
  2745  
  2746  func (fn OnRestartRequiredEventCallbackFunc) Register() js.Func[func(reason OnRestartRequiredReason)] {
  2747  	return js.RegisterCallback[func(reason OnRestartRequiredReason)](
  2748  		fn, abi.FuncPCABIInternal(fn),
  2749  	)
  2750  }
  2751  
  2752  func (fn OnRestartRequiredEventCallbackFunc) DispatchCallback(
  2753  	targetPC uintptr, ctx *js.CallbackContext,
  2754  ) {
  2755  	args := ctx.Args()
  2756  	if len(args) != 1+1 /* js this */ ||
  2757  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  2758  		js.ThrowInvalidCallbackInvocation()
  2759  	}
  2760  
  2761  	if ctx.Return(fn(
  2762  		args[0],
  2763  
  2764  		OnRestartRequiredReason(0).FromRef(args[0+1]),
  2765  	)) {
  2766  		return
  2767  	}
  2768  
  2769  	js.ThrowCallbackValueNotReturned()
  2770  }
  2771  
  2772  type OnRestartRequiredEventCallback[T any] struct {
  2773  	Fn  func(arg T, this js.Ref, reason OnRestartRequiredReason) js.Ref
  2774  	Arg T
  2775  }
  2776  
  2777  func (cb *OnRestartRequiredEventCallback[T]) Register() js.Func[func(reason OnRestartRequiredReason)] {
  2778  	return js.RegisterCallback[func(reason OnRestartRequiredReason)](
  2779  		cb, abi.FuncPCABIInternal(cb.Fn),
  2780  	)
  2781  }
  2782  
  2783  func (cb *OnRestartRequiredEventCallback[T]) DispatchCallback(
  2784  	targetPC uintptr, ctx *js.CallbackContext,
  2785  ) {
  2786  	args := ctx.Args()
  2787  	if len(args) != 1+1 /* js this */ ||
  2788  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  2789  		js.ThrowInvalidCallbackInvocation()
  2790  	}
  2791  
  2792  	if ctx.Return(cb.Fn(
  2793  		cb.Arg,
  2794  		args[0],
  2795  
  2796  		OnRestartRequiredReason(0).FromRef(args[0+1]),
  2797  	)) {
  2798  		return
  2799  	}
  2800  
  2801  	js.ThrowCallbackValueNotReturned()
  2802  }
  2803  
  2804  // HasFuncOnRestartRequired returns true if the function "WEBEXT.runtime.onRestartRequired.addListener" exists.
  2805  func HasFuncOnRestartRequired() bool {
  2806  	return js.True == bindings.HasFuncOnRestartRequired()
  2807  }
  2808  
  2809  // FuncOnRestartRequired returns the function "WEBEXT.runtime.onRestartRequired.addListener".
  2810  func FuncOnRestartRequired() (fn js.Func[func(callback js.Func[func(reason OnRestartRequiredReason)])]) {
  2811  	bindings.FuncOnRestartRequired(
  2812  		js.Pointer(&fn),
  2813  	)
  2814  	return
  2815  }
  2816  
  2817  // OnRestartRequired calls the function "WEBEXT.runtime.onRestartRequired.addListener" directly.
  2818  func OnRestartRequired(callback js.Func[func(reason OnRestartRequiredReason)]) (ret js.Void) {
  2819  	bindings.CallOnRestartRequired(
  2820  		js.Pointer(&ret),
  2821  		callback.Ref(),
  2822  	)
  2823  
  2824  	return
  2825  }
  2826  
  2827  // TryOnRestartRequired calls the function "WEBEXT.runtime.onRestartRequired.addListener"
  2828  // in a try/catch block and returns (_, err, ok = false) when it went through
  2829  // the catch clause.
  2830  func TryOnRestartRequired(callback js.Func[func(reason OnRestartRequiredReason)]) (ret js.Void, exception js.Any, ok bool) {
  2831  	ok = js.True == bindings.TryOnRestartRequired(
  2832  		js.Pointer(&ret), js.Pointer(&exception),
  2833  		callback.Ref(),
  2834  	)
  2835  
  2836  	return
  2837  }
  2838  
  2839  // HasFuncOffRestartRequired returns true if the function "WEBEXT.runtime.onRestartRequired.removeListener" exists.
  2840  func HasFuncOffRestartRequired() bool {
  2841  	return js.True == bindings.HasFuncOffRestartRequired()
  2842  }
  2843  
  2844  // FuncOffRestartRequired returns the function "WEBEXT.runtime.onRestartRequired.removeListener".
  2845  func FuncOffRestartRequired() (fn js.Func[func(callback js.Func[func(reason OnRestartRequiredReason)])]) {
  2846  	bindings.FuncOffRestartRequired(
  2847  		js.Pointer(&fn),
  2848  	)
  2849  	return
  2850  }
  2851  
  2852  // OffRestartRequired calls the function "WEBEXT.runtime.onRestartRequired.removeListener" directly.
  2853  func OffRestartRequired(callback js.Func[func(reason OnRestartRequiredReason)]) (ret js.Void) {
  2854  	bindings.CallOffRestartRequired(
  2855  		js.Pointer(&ret),
  2856  		callback.Ref(),
  2857  	)
  2858  
  2859  	return
  2860  }
  2861  
  2862  // TryOffRestartRequired calls the function "WEBEXT.runtime.onRestartRequired.removeListener"
  2863  // in a try/catch block and returns (_, err, ok = false) when it went through
  2864  // the catch clause.
  2865  func TryOffRestartRequired(callback js.Func[func(reason OnRestartRequiredReason)]) (ret js.Void, exception js.Any, ok bool) {
  2866  	ok = js.True == bindings.TryOffRestartRequired(
  2867  		js.Pointer(&ret), js.Pointer(&exception),
  2868  		callback.Ref(),
  2869  	)
  2870  
  2871  	return
  2872  }
  2873  
  2874  // HasFuncHasOnRestartRequired returns true if the function "WEBEXT.runtime.onRestartRequired.hasListener" exists.
  2875  func HasFuncHasOnRestartRequired() bool {
  2876  	return js.True == bindings.HasFuncHasOnRestartRequired()
  2877  }
  2878  
  2879  // FuncHasOnRestartRequired returns the function "WEBEXT.runtime.onRestartRequired.hasListener".
  2880  func FuncHasOnRestartRequired() (fn js.Func[func(callback js.Func[func(reason OnRestartRequiredReason)]) bool]) {
  2881  	bindings.FuncHasOnRestartRequired(
  2882  		js.Pointer(&fn),
  2883  	)
  2884  	return
  2885  }
  2886  
  2887  // HasOnRestartRequired calls the function "WEBEXT.runtime.onRestartRequired.hasListener" directly.
  2888  func HasOnRestartRequired(callback js.Func[func(reason OnRestartRequiredReason)]) (ret bool) {
  2889  	bindings.CallHasOnRestartRequired(
  2890  		js.Pointer(&ret),
  2891  		callback.Ref(),
  2892  	)
  2893  
  2894  	return
  2895  }
  2896  
  2897  // TryHasOnRestartRequired calls the function "WEBEXT.runtime.onRestartRequired.hasListener"
  2898  // in a try/catch block and returns (_, err, ok = false) when it went through
  2899  // the catch clause.
  2900  func TryHasOnRestartRequired(callback js.Func[func(reason OnRestartRequiredReason)]) (ret bool, exception js.Any, ok bool) {
  2901  	ok = js.True == bindings.TryHasOnRestartRequired(
  2902  		js.Pointer(&ret), js.Pointer(&exception),
  2903  		callback.Ref(),
  2904  	)
  2905  
  2906  	return
  2907  }
  2908  
  2909  type OnStartupEventCallbackFunc func(this js.Ref) js.Ref
  2910  
  2911  func (fn OnStartupEventCallbackFunc) Register() js.Func[func()] {
  2912  	return js.RegisterCallback[func()](
  2913  		fn, abi.FuncPCABIInternal(fn),
  2914  	)
  2915  }
  2916  
  2917  func (fn OnStartupEventCallbackFunc) DispatchCallback(
  2918  	targetPC uintptr, ctx *js.CallbackContext,
  2919  ) {
  2920  	args := ctx.Args()
  2921  	if len(args) != 0+1 /* js this */ ||
  2922  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  2923  		js.ThrowInvalidCallbackInvocation()
  2924  	}
  2925  
  2926  	if ctx.Return(fn(
  2927  		args[0],
  2928  	)) {
  2929  		return
  2930  	}
  2931  
  2932  	js.ThrowCallbackValueNotReturned()
  2933  }
  2934  
  2935  type OnStartupEventCallback[T any] struct {
  2936  	Fn  func(arg T, this js.Ref) js.Ref
  2937  	Arg T
  2938  }
  2939  
  2940  func (cb *OnStartupEventCallback[T]) Register() js.Func[func()] {
  2941  	return js.RegisterCallback[func()](
  2942  		cb, abi.FuncPCABIInternal(cb.Fn),
  2943  	)
  2944  }
  2945  
  2946  func (cb *OnStartupEventCallback[T]) DispatchCallback(
  2947  	targetPC uintptr, ctx *js.CallbackContext,
  2948  ) {
  2949  	args := ctx.Args()
  2950  	if len(args) != 0+1 /* js this */ ||
  2951  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  2952  		js.ThrowInvalidCallbackInvocation()
  2953  	}
  2954  
  2955  	if ctx.Return(cb.Fn(
  2956  		cb.Arg,
  2957  		args[0],
  2958  	)) {
  2959  		return
  2960  	}
  2961  
  2962  	js.ThrowCallbackValueNotReturned()
  2963  }
  2964  
  2965  // HasFuncOnStartup returns true if the function "WEBEXT.runtime.onStartup.addListener" exists.
  2966  func HasFuncOnStartup() bool {
  2967  	return js.True == bindings.HasFuncOnStartup()
  2968  }
  2969  
  2970  // FuncOnStartup returns the function "WEBEXT.runtime.onStartup.addListener".
  2971  func FuncOnStartup() (fn js.Func[func(callback js.Func[func()])]) {
  2972  	bindings.FuncOnStartup(
  2973  		js.Pointer(&fn),
  2974  	)
  2975  	return
  2976  }
  2977  
  2978  // OnStartup calls the function "WEBEXT.runtime.onStartup.addListener" directly.
  2979  func OnStartup(callback js.Func[func()]) (ret js.Void) {
  2980  	bindings.CallOnStartup(
  2981  		js.Pointer(&ret),
  2982  		callback.Ref(),
  2983  	)
  2984  
  2985  	return
  2986  }
  2987  
  2988  // TryOnStartup calls the function "WEBEXT.runtime.onStartup.addListener"
  2989  // in a try/catch block and returns (_, err, ok = false) when it went through
  2990  // the catch clause.
  2991  func TryOnStartup(callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
  2992  	ok = js.True == bindings.TryOnStartup(
  2993  		js.Pointer(&ret), js.Pointer(&exception),
  2994  		callback.Ref(),
  2995  	)
  2996  
  2997  	return
  2998  }
  2999  
  3000  // HasFuncOffStartup returns true if the function "WEBEXT.runtime.onStartup.removeListener" exists.
  3001  func HasFuncOffStartup() bool {
  3002  	return js.True == bindings.HasFuncOffStartup()
  3003  }
  3004  
  3005  // FuncOffStartup returns the function "WEBEXT.runtime.onStartup.removeListener".
  3006  func FuncOffStartup() (fn js.Func[func(callback js.Func[func()])]) {
  3007  	bindings.FuncOffStartup(
  3008  		js.Pointer(&fn),
  3009  	)
  3010  	return
  3011  }
  3012  
  3013  // OffStartup calls the function "WEBEXT.runtime.onStartup.removeListener" directly.
  3014  func OffStartup(callback js.Func[func()]) (ret js.Void) {
  3015  	bindings.CallOffStartup(
  3016  		js.Pointer(&ret),
  3017  		callback.Ref(),
  3018  	)
  3019  
  3020  	return
  3021  }
  3022  
  3023  // TryOffStartup calls the function "WEBEXT.runtime.onStartup.removeListener"
  3024  // in a try/catch block and returns (_, err, ok = false) when it went through
  3025  // the catch clause.
  3026  func TryOffStartup(callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
  3027  	ok = js.True == bindings.TryOffStartup(
  3028  		js.Pointer(&ret), js.Pointer(&exception),
  3029  		callback.Ref(),
  3030  	)
  3031  
  3032  	return
  3033  }
  3034  
  3035  // HasFuncHasOnStartup returns true if the function "WEBEXT.runtime.onStartup.hasListener" exists.
  3036  func HasFuncHasOnStartup() bool {
  3037  	return js.True == bindings.HasFuncHasOnStartup()
  3038  }
  3039  
  3040  // FuncHasOnStartup returns the function "WEBEXT.runtime.onStartup.hasListener".
  3041  func FuncHasOnStartup() (fn js.Func[func(callback js.Func[func()]) bool]) {
  3042  	bindings.FuncHasOnStartup(
  3043  		js.Pointer(&fn),
  3044  	)
  3045  	return
  3046  }
  3047  
  3048  // HasOnStartup calls the function "WEBEXT.runtime.onStartup.hasListener" directly.
  3049  func HasOnStartup(callback js.Func[func()]) (ret bool) {
  3050  	bindings.CallHasOnStartup(
  3051  		js.Pointer(&ret),
  3052  		callback.Ref(),
  3053  	)
  3054  
  3055  	return
  3056  }
  3057  
  3058  // TryHasOnStartup calls the function "WEBEXT.runtime.onStartup.hasListener"
  3059  // in a try/catch block and returns (_, err, ok = false) when it went through
  3060  // the catch clause.
  3061  func TryHasOnStartup(callback js.Func[func()]) (ret bool, exception js.Any, ok bool) {
  3062  	ok = js.True == bindings.TryHasOnStartup(
  3063  		js.Pointer(&ret), js.Pointer(&exception),
  3064  		callback.Ref(),
  3065  	)
  3066  
  3067  	return
  3068  }
  3069  
  3070  type OnSuspendEventCallbackFunc func(this js.Ref) js.Ref
  3071  
  3072  func (fn OnSuspendEventCallbackFunc) Register() js.Func[func()] {
  3073  	return js.RegisterCallback[func()](
  3074  		fn, abi.FuncPCABIInternal(fn),
  3075  	)
  3076  }
  3077  
  3078  func (fn OnSuspendEventCallbackFunc) DispatchCallback(
  3079  	targetPC uintptr, ctx *js.CallbackContext,
  3080  ) {
  3081  	args := ctx.Args()
  3082  	if len(args) != 0+1 /* js this */ ||
  3083  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  3084  		js.ThrowInvalidCallbackInvocation()
  3085  	}
  3086  
  3087  	if ctx.Return(fn(
  3088  		args[0],
  3089  	)) {
  3090  		return
  3091  	}
  3092  
  3093  	js.ThrowCallbackValueNotReturned()
  3094  }
  3095  
  3096  type OnSuspendEventCallback[T any] struct {
  3097  	Fn  func(arg T, this js.Ref) js.Ref
  3098  	Arg T
  3099  }
  3100  
  3101  func (cb *OnSuspendEventCallback[T]) Register() js.Func[func()] {
  3102  	return js.RegisterCallback[func()](
  3103  		cb, abi.FuncPCABIInternal(cb.Fn),
  3104  	)
  3105  }
  3106  
  3107  func (cb *OnSuspendEventCallback[T]) DispatchCallback(
  3108  	targetPC uintptr, ctx *js.CallbackContext,
  3109  ) {
  3110  	args := ctx.Args()
  3111  	if len(args) != 0+1 /* js this */ ||
  3112  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  3113  		js.ThrowInvalidCallbackInvocation()
  3114  	}
  3115  
  3116  	if ctx.Return(cb.Fn(
  3117  		cb.Arg,
  3118  		args[0],
  3119  	)) {
  3120  		return
  3121  	}
  3122  
  3123  	js.ThrowCallbackValueNotReturned()
  3124  }
  3125  
  3126  // HasFuncOnSuspend returns true if the function "WEBEXT.runtime.onSuspend.addListener" exists.
  3127  func HasFuncOnSuspend() bool {
  3128  	return js.True == bindings.HasFuncOnSuspend()
  3129  }
  3130  
  3131  // FuncOnSuspend returns the function "WEBEXT.runtime.onSuspend.addListener".
  3132  func FuncOnSuspend() (fn js.Func[func(callback js.Func[func()])]) {
  3133  	bindings.FuncOnSuspend(
  3134  		js.Pointer(&fn),
  3135  	)
  3136  	return
  3137  }
  3138  
  3139  // OnSuspend calls the function "WEBEXT.runtime.onSuspend.addListener" directly.
  3140  func OnSuspend(callback js.Func[func()]) (ret js.Void) {
  3141  	bindings.CallOnSuspend(
  3142  		js.Pointer(&ret),
  3143  		callback.Ref(),
  3144  	)
  3145  
  3146  	return
  3147  }
  3148  
  3149  // TryOnSuspend calls the function "WEBEXT.runtime.onSuspend.addListener"
  3150  // in a try/catch block and returns (_, err, ok = false) when it went through
  3151  // the catch clause.
  3152  func TryOnSuspend(callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
  3153  	ok = js.True == bindings.TryOnSuspend(
  3154  		js.Pointer(&ret), js.Pointer(&exception),
  3155  		callback.Ref(),
  3156  	)
  3157  
  3158  	return
  3159  }
  3160  
  3161  // HasFuncOffSuspend returns true if the function "WEBEXT.runtime.onSuspend.removeListener" exists.
  3162  func HasFuncOffSuspend() bool {
  3163  	return js.True == bindings.HasFuncOffSuspend()
  3164  }
  3165  
  3166  // FuncOffSuspend returns the function "WEBEXT.runtime.onSuspend.removeListener".
  3167  func FuncOffSuspend() (fn js.Func[func(callback js.Func[func()])]) {
  3168  	bindings.FuncOffSuspend(
  3169  		js.Pointer(&fn),
  3170  	)
  3171  	return
  3172  }
  3173  
  3174  // OffSuspend calls the function "WEBEXT.runtime.onSuspend.removeListener" directly.
  3175  func OffSuspend(callback js.Func[func()]) (ret js.Void) {
  3176  	bindings.CallOffSuspend(
  3177  		js.Pointer(&ret),
  3178  		callback.Ref(),
  3179  	)
  3180  
  3181  	return
  3182  }
  3183  
  3184  // TryOffSuspend calls the function "WEBEXT.runtime.onSuspend.removeListener"
  3185  // in a try/catch block and returns (_, err, ok = false) when it went through
  3186  // the catch clause.
  3187  func TryOffSuspend(callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
  3188  	ok = js.True == bindings.TryOffSuspend(
  3189  		js.Pointer(&ret), js.Pointer(&exception),
  3190  		callback.Ref(),
  3191  	)
  3192  
  3193  	return
  3194  }
  3195  
  3196  // HasFuncHasOnSuspend returns true if the function "WEBEXT.runtime.onSuspend.hasListener" exists.
  3197  func HasFuncHasOnSuspend() bool {
  3198  	return js.True == bindings.HasFuncHasOnSuspend()
  3199  }
  3200  
  3201  // FuncHasOnSuspend returns the function "WEBEXT.runtime.onSuspend.hasListener".
  3202  func FuncHasOnSuspend() (fn js.Func[func(callback js.Func[func()]) bool]) {
  3203  	bindings.FuncHasOnSuspend(
  3204  		js.Pointer(&fn),
  3205  	)
  3206  	return
  3207  }
  3208  
  3209  // HasOnSuspend calls the function "WEBEXT.runtime.onSuspend.hasListener" directly.
  3210  func HasOnSuspend(callback js.Func[func()]) (ret bool) {
  3211  	bindings.CallHasOnSuspend(
  3212  		js.Pointer(&ret),
  3213  		callback.Ref(),
  3214  	)
  3215  
  3216  	return
  3217  }
  3218  
  3219  // TryHasOnSuspend calls the function "WEBEXT.runtime.onSuspend.hasListener"
  3220  // in a try/catch block and returns (_, err, ok = false) when it went through
  3221  // the catch clause.
  3222  func TryHasOnSuspend(callback js.Func[func()]) (ret bool, exception js.Any, ok bool) {
  3223  	ok = js.True == bindings.TryHasOnSuspend(
  3224  		js.Pointer(&ret), js.Pointer(&exception),
  3225  		callback.Ref(),
  3226  	)
  3227  
  3228  	return
  3229  }
  3230  
  3231  type OnSuspendCanceledEventCallbackFunc func(this js.Ref) js.Ref
  3232  
  3233  func (fn OnSuspendCanceledEventCallbackFunc) Register() js.Func[func()] {
  3234  	return js.RegisterCallback[func()](
  3235  		fn, abi.FuncPCABIInternal(fn),
  3236  	)
  3237  }
  3238  
  3239  func (fn OnSuspendCanceledEventCallbackFunc) DispatchCallback(
  3240  	targetPC uintptr, ctx *js.CallbackContext,
  3241  ) {
  3242  	args := ctx.Args()
  3243  	if len(args) != 0+1 /* js this */ ||
  3244  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  3245  		js.ThrowInvalidCallbackInvocation()
  3246  	}
  3247  
  3248  	if ctx.Return(fn(
  3249  		args[0],
  3250  	)) {
  3251  		return
  3252  	}
  3253  
  3254  	js.ThrowCallbackValueNotReturned()
  3255  }
  3256  
  3257  type OnSuspendCanceledEventCallback[T any] struct {
  3258  	Fn  func(arg T, this js.Ref) js.Ref
  3259  	Arg T
  3260  }
  3261  
  3262  func (cb *OnSuspendCanceledEventCallback[T]) Register() js.Func[func()] {
  3263  	return js.RegisterCallback[func()](
  3264  		cb, abi.FuncPCABIInternal(cb.Fn),
  3265  	)
  3266  }
  3267  
  3268  func (cb *OnSuspendCanceledEventCallback[T]) DispatchCallback(
  3269  	targetPC uintptr, ctx *js.CallbackContext,
  3270  ) {
  3271  	args := ctx.Args()
  3272  	if len(args) != 0+1 /* js this */ ||
  3273  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  3274  		js.ThrowInvalidCallbackInvocation()
  3275  	}
  3276  
  3277  	if ctx.Return(cb.Fn(
  3278  		cb.Arg,
  3279  		args[0],
  3280  	)) {
  3281  		return
  3282  	}
  3283  
  3284  	js.ThrowCallbackValueNotReturned()
  3285  }
  3286  
  3287  // HasFuncOnSuspendCanceled returns true if the function "WEBEXT.runtime.onSuspendCanceled.addListener" exists.
  3288  func HasFuncOnSuspendCanceled() bool {
  3289  	return js.True == bindings.HasFuncOnSuspendCanceled()
  3290  }
  3291  
  3292  // FuncOnSuspendCanceled returns the function "WEBEXT.runtime.onSuspendCanceled.addListener".
  3293  func FuncOnSuspendCanceled() (fn js.Func[func(callback js.Func[func()])]) {
  3294  	bindings.FuncOnSuspendCanceled(
  3295  		js.Pointer(&fn),
  3296  	)
  3297  	return
  3298  }
  3299  
  3300  // OnSuspendCanceled calls the function "WEBEXT.runtime.onSuspendCanceled.addListener" directly.
  3301  func OnSuspendCanceled(callback js.Func[func()]) (ret js.Void) {
  3302  	bindings.CallOnSuspendCanceled(
  3303  		js.Pointer(&ret),
  3304  		callback.Ref(),
  3305  	)
  3306  
  3307  	return
  3308  }
  3309  
  3310  // TryOnSuspendCanceled calls the function "WEBEXT.runtime.onSuspendCanceled.addListener"
  3311  // in a try/catch block and returns (_, err, ok = false) when it went through
  3312  // the catch clause.
  3313  func TryOnSuspendCanceled(callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
  3314  	ok = js.True == bindings.TryOnSuspendCanceled(
  3315  		js.Pointer(&ret), js.Pointer(&exception),
  3316  		callback.Ref(),
  3317  	)
  3318  
  3319  	return
  3320  }
  3321  
  3322  // HasFuncOffSuspendCanceled returns true if the function "WEBEXT.runtime.onSuspendCanceled.removeListener" exists.
  3323  func HasFuncOffSuspendCanceled() bool {
  3324  	return js.True == bindings.HasFuncOffSuspendCanceled()
  3325  }
  3326  
  3327  // FuncOffSuspendCanceled returns the function "WEBEXT.runtime.onSuspendCanceled.removeListener".
  3328  func FuncOffSuspendCanceled() (fn js.Func[func(callback js.Func[func()])]) {
  3329  	bindings.FuncOffSuspendCanceled(
  3330  		js.Pointer(&fn),
  3331  	)
  3332  	return
  3333  }
  3334  
  3335  // OffSuspendCanceled calls the function "WEBEXT.runtime.onSuspendCanceled.removeListener" directly.
  3336  func OffSuspendCanceled(callback js.Func[func()]) (ret js.Void) {
  3337  	bindings.CallOffSuspendCanceled(
  3338  		js.Pointer(&ret),
  3339  		callback.Ref(),
  3340  	)
  3341  
  3342  	return
  3343  }
  3344  
  3345  // TryOffSuspendCanceled calls the function "WEBEXT.runtime.onSuspendCanceled.removeListener"
  3346  // in a try/catch block and returns (_, err, ok = false) when it went through
  3347  // the catch clause.
  3348  func TryOffSuspendCanceled(callback js.Func[func()]) (ret js.Void, exception js.Any, ok bool) {
  3349  	ok = js.True == bindings.TryOffSuspendCanceled(
  3350  		js.Pointer(&ret), js.Pointer(&exception),
  3351  		callback.Ref(),
  3352  	)
  3353  
  3354  	return
  3355  }
  3356  
  3357  // HasFuncHasOnSuspendCanceled returns true if the function "WEBEXT.runtime.onSuspendCanceled.hasListener" exists.
  3358  func HasFuncHasOnSuspendCanceled() bool {
  3359  	return js.True == bindings.HasFuncHasOnSuspendCanceled()
  3360  }
  3361  
  3362  // FuncHasOnSuspendCanceled returns the function "WEBEXT.runtime.onSuspendCanceled.hasListener".
  3363  func FuncHasOnSuspendCanceled() (fn js.Func[func(callback js.Func[func()]) bool]) {
  3364  	bindings.FuncHasOnSuspendCanceled(
  3365  		js.Pointer(&fn),
  3366  	)
  3367  	return
  3368  }
  3369  
  3370  // HasOnSuspendCanceled calls the function "WEBEXT.runtime.onSuspendCanceled.hasListener" directly.
  3371  func HasOnSuspendCanceled(callback js.Func[func()]) (ret bool) {
  3372  	bindings.CallHasOnSuspendCanceled(
  3373  		js.Pointer(&ret),
  3374  		callback.Ref(),
  3375  	)
  3376  
  3377  	return
  3378  }
  3379  
  3380  // TryHasOnSuspendCanceled calls the function "WEBEXT.runtime.onSuspendCanceled.hasListener"
  3381  // in a try/catch block and returns (_, err, ok = false) when it went through
  3382  // the catch clause.
  3383  func TryHasOnSuspendCanceled(callback js.Func[func()]) (ret bool, exception js.Any, ok bool) {
  3384  	ok = js.True == bindings.TryHasOnSuspendCanceled(
  3385  		js.Pointer(&ret), js.Pointer(&exception),
  3386  		callback.Ref(),
  3387  	)
  3388  
  3389  	return
  3390  }
  3391  
  3392  type OnUpdateAvailableEventCallbackFunc func(this js.Ref, details js.Any) js.Ref
  3393  
  3394  func (fn OnUpdateAvailableEventCallbackFunc) Register() js.Func[func(details js.Any)] {
  3395  	return js.RegisterCallback[func(details js.Any)](
  3396  		fn, abi.FuncPCABIInternal(fn),
  3397  	)
  3398  }
  3399  
  3400  func (fn OnUpdateAvailableEventCallbackFunc) DispatchCallback(
  3401  	targetPC uintptr, ctx *js.CallbackContext,
  3402  ) {
  3403  	args := ctx.Args()
  3404  	if len(args) != 1+1 /* js this */ ||
  3405  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  3406  		js.ThrowInvalidCallbackInvocation()
  3407  	}
  3408  
  3409  	if ctx.Return(fn(
  3410  		args[0],
  3411  
  3412  		js.Any{}.FromRef(args[0+1]),
  3413  	)) {
  3414  		return
  3415  	}
  3416  
  3417  	js.ThrowCallbackValueNotReturned()
  3418  }
  3419  
  3420  type OnUpdateAvailableEventCallback[T any] struct {
  3421  	Fn  func(arg T, this js.Ref, details js.Any) js.Ref
  3422  	Arg T
  3423  }
  3424  
  3425  func (cb *OnUpdateAvailableEventCallback[T]) Register() js.Func[func(details js.Any)] {
  3426  	return js.RegisterCallback[func(details js.Any)](
  3427  		cb, abi.FuncPCABIInternal(cb.Fn),
  3428  	)
  3429  }
  3430  
  3431  func (cb *OnUpdateAvailableEventCallback[T]) DispatchCallback(
  3432  	targetPC uintptr, ctx *js.CallbackContext,
  3433  ) {
  3434  	args := ctx.Args()
  3435  	if len(args) != 1+1 /* js this */ ||
  3436  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  3437  		js.ThrowInvalidCallbackInvocation()
  3438  	}
  3439  
  3440  	if ctx.Return(cb.Fn(
  3441  		cb.Arg,
  3442  		args[0],
  3443  
  3444  		js.Any{}.FromRef(args[0+1]),
  3445  	)) {
  3446  		return
  3447  	}
  3448  
  3449  	js.ThrowCallbackValueNotReturned()
  3450  }
  3451  
  3452  // HasFuncOnUpdateAvailable returns true if the function "WEBEXT.runtime.onUpdateAvailable.addListener" exists.
  3453  func HasFuncOnUpdateAvailable() bool {
  3454  	return js.True == bindings.HasFuncOnUpdateAvailable()
  3455  }
  3456  
  3457  // FuncOnUpdateAvailable returns the function "WEBEXT.runtime.onUpdateAvailable.addListener".
  3458  func FuncOnUpdateAvailable() (fn js.Func[func(callback js.Func[func(details js.Any)])]) {
  3459  	bindings.FuncOnUpdateAvailable(
  3460  		js.Pointer(&fn),
  3461  	)
  3462  	return
  3463  }
  3464  
  3465  // OnUpdateAvailable calls the function "WEBEXT.runtime.onUpdateAvailable.addListener" directly.
  3466  func OnUpdateAvailable(callback js.Func[func(details js.Any)]) (ret js.Void) {
  3467  	bindings.CallOnUpdateAvailable(
  3468  		js.Pointer(&ret),
  3469  		callback.Ref(),
  3470  	)
  3471  
  3472  	return
  3473  }
  3474  
  3475  // TryOnUpdateAvailable calls the function "WEBEXT.runtime.onUpdateAvailable.addListener"
  3476  // in a try/catch block and returns (_, err, ok = false) when it went through
  3477  // the catch clause.
  3478  func TryOnUpdateAvailable(callback js.Func[func(details js.Any)]) (ret js.Void, exception js.Any, ok bool) {
  3479  	ok = js.True == bindings.TryOnUpdateAvailable(
  3480  		js.Pointer(&ret), js.Pointer(&exception),
  3481  		callback.Ref(),
  3482  	)
  3483  
  3484  	return
  3485  }
  3486  
  3487  // HasFuncOffUpdateAvailable returns true if the function "WEBEXT.runtime.onUpdateAvailable.removeListener" exists.
  3488  func HasFuncOffUpdateAvailable() bool {
  3489  	return js.True == bindings.HasFuncOffUpdateAvailable()
  3490  }
  3491  
  3492  // FuncOffUpdateAvailable returns the function "WEBEXT.runtime.onUpdateAvailable.removeListener".
  3493  func FuncOffUpdateAvailable() (fn js.Func[func(callback js.Func[func(details js.Any)])]) {
  3494  	bindings.FuncOffUpdateAvailable(
  3495  		js.Pointer(&fn),
  3496  	)
  3497  	return
  3498  }
  3499  
  3500  // OffUpdateAvailable calls the function "WEBEXT.runtime.onUpdateAvailable.removeListener" directly.
  3501  func OffUpdateAvailable(callback js.Func[func(details js.Any)]) (ret js.Void) {
  3502  	bindings.CallOffUpdateAvailable(
  3503  		js.Pointer(&ret),
  3504  		callback.Ref(),
  3505  	)
  3506  
  3507  	return
  3508  }
  3509  
  3510  // TryOffUpdateAvailable calls the function "WEBEXT.runtime.onUpdateAvailable.removeListener"
  3511  // in a try/catch block and returns (_, err, ok = false) when it went through
  3512  // the catch clause.
  3513  func TryOffUpdateAvailable(callback js.Func[func(details js.Any)]) (ret js.Void, exception js.Any, ok bool) {
  3514  	ok = js.True == bindings.TryOffUpdateAvailable(
  3515  		js.Pointer(&ret), js.Pointer(&exception),
  3516  		callback.Ref(),
  3517  	)
  3518  
  3519  	return
  3520  }
  3521  
  3522  // HasFuncHasOnUpdateAvailable returns true if the function "WEBEXT.runtime.onUpdateAvailable.hasListener" exists.
  3523  func HasFuncHasOnUpdateAvailable() bool {
  3524  	return js.True == bindings.HasFuncHasOnUpdateAvailable()
  3525  }
  3526  
  3527  // FuncHasOnUpdateAvailable returns the function "WEBEXT.runtime.onUpdateAvailable.hasListener".
  3528  func FuncHasOnUpdateAvailable() (fn js.Func[func(callback js.Func[func(details js.Any)]) bool]) {
  3529  	bindings.FuncHasOnUpdateAvailable(
  3530  		js.Pointer(&fn),
  3531  	)
  3532  	return
  3533  }
  3534  
  3535  // HasOnUpdateAvailable calls the function "WEBEXT.runtime.onUpdateAvailable.hasListener" directly.
  3536  func HasOnUpdateAvailable(callback js.Func[func(details js.Any)]) (ret bool) {
  3537  	bindings.CallHasOnUpdateAvailable(
  3538  		js.Pointer(&ret),
  3539  		callback.Ref(),
  3540  	)
  3541  
  3542  	return
  3543  }
  3544  
  3545  // TryHasOnUpdateAvailable calls the function "WEBEXT.runtime.onUpdateAvailable.hasListener"
  3546  // in a try/catch block and returns (_, err, ok = false) when it went through
  3547  // the catch clause.
  3548  func TryHasOnUpdateAvailable(callback js.Func[func(details js.Any)]) (ret bool, exception js.Any, ok bool) {
  3549  	ok = js.True == bindings.TryHasOnUpdateAvailable(
  3550  		js.Pointer(&ret), js.Pointer(&exception),
  3551  		callback.Ref(),
  3552  	)
  3553  
  3554  	return
  3555  }
  3556  
  3557  type OnUserScriptConnectEventCallbackFunc func(this js.Ref, port *Port) js.Ref
  3558  
  3559  func (fn OnUserScriptConnectEventCallbackFunc) Register() js.Func[func(port *Port)] {
  3560  	return js.RegisterCallback[func(port *Port)](
  3561  		fn, abi.FuncPCABIInternal(fn),
  3562  	)
  3563  }
  3564  
  3565  func (fn OnUserScriptConnectEventCallbackFunc) DispatchCallback(
  3566  	targetPC uintptr, ctx *js.CallbackContext,
  3567  ) {
  3568  	args := ctx.Args()
  3569  	if len(args) != 1+1 /* js this */ ||
  3570  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  3571  		js.ThrowInvalidCallbackInvocation()
  3572  	}
  3573  	var arg0 Port
  3574  	arg0.UpdateFrom(args[0+1])
  3575  	defer arg0.FreeMembers(true)
  3576  
  3577  	if ctx.Return(fn(
  3578  		args[0],
  3579  
  3580  		mark.NoEscape(&arg0),
  3581  	)) {
  3582  		return
  3583  	}
  3584  
  3585  	js.ThrowCallbackValueNotReturned()
  3586  }
  3587  
  3588  type OnUserScriptConnectEventCallback[T any] struct {
  3589  	Fn  func(arg T, this js.Ref, port *Port) js.Ref
  3590  	Arg T
  3591  }
  3592  
  3593  func (cb *OnUserScriptConnectEventCallback[T]) Register() js.Func[func(port *Port)] {
  3594  	return js.RegisterCallback[func(port *Port)](
  3595  		cb, abi.FuncPCABIInternal(cb.Fn),
  3596  	)
  3597  }
  3598  
  3599  func (cb *OnUserScriptConnectEventCallback[T]) DispatchCallback(
  3600  	targetPC uintptr, ctx *js.CallbackContext,
  3601  ) {
  3602  	args := ctx.Args()
  3603  	if len(args) != 1+1 /* js this */ ||
  3604  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  3605  		js.ThrowInvalidCallbackInvocation()
  3606  	}
  3607  	var arg0 Port
  3608  	arg0.UpdateFrom(args[0+1])
  3609  	defer arg0.FreeMembers(true)
  3610  
  3611  	if ctx.Return(cb.Fn(
  3612  		cb.Arg,
  3613  		args[0],
  3614  
  3615  		mark.NoEscape(&arg0),
  3616  	)) {
  3617  		return
  3618  	}
  3619  
  3620  	js.ThrowCallbackValueNotReturned()
  3621  }
  3622  
  3623  // HasFuncOnUserScriptConnect returns true if the function "WEBEXT.runtime.onUserScriptConnect.addListener" exists.
  3624  func HasFuncOnUserScriptConnect() bool {
  3625  	return js.True == bindings.HasFuncOnUserScriptConnect()
  3626  }
  3627  
  3628  // FuncOnUserScriptConnect returns the function "WEBEXT.runtime.onUserScriptConnect.addListener".
  3629  func FuncOnUserScriptConnect() (fn js.Func[func(callback js.Func[func(port *Port)])]) {
  3630  	bindings.FuncOnUserScriptConnect(
  3631  		js.Pointer(&fn),
  3632  	)
  3633  	return
  3634  }
  3635  
  3636  // OnUserScriptConnect calls the function "WEBEXT.runtime.onUserScriptConnect.addListener" directly.
  3637  func OnUserScriptConnect(callback js.Func[func(port *Port)]) (ret js.Void) {
  3638  	bindings.CallOnUserScriptConnect(
  3639  		js.Pointer(&ret),
  3640  		callback.Ref(),
  3641  	)
  3642  
  3643  	return
  3644  }
  3645  
  3646  // TryOnUserScriptConnect calls the function "WEBEXT.runtime.onUserScriptConnect.addListener"
  3647  // in a try/catch block and returns (_, err, ok = false) when it went through
  3648  // the catch clause.
  3649  func TryOnUserScriptConnect(callback js.Func[func(port *Port)]) (ret js.Void, exception js.Any, ok bool) {
  3650  	ok = js.True == bindings.TryOnUserScriptConnect(
  3651  		js.Pointer(&ret), js.Pointer(&exception),
  3652  		callback.Ref(),
  3653  	)
  3654  
  3655  	return
  3656  }
  3657  
  3658  // HasFuncOffUserScriptConnect returns true if the function "WEBEXT.runtime.onUserScriptConnect.removeListener" exists.
  3659  func HasFuncOffUserScriptConnect() bool {
  3660  	return js.True == bindings.HasFuncOffUserScriptConnect()
  3661  }
  3662  
  3663  // FuncOffUserScriptConnect returns the function "WEBEXT.runtime.onUserScriptConnect.removeListener".
  3664  func FuncOffUserScriptConnect() (fn js.Func[func(callback js.Func[func(port *Port)])]) {
  3665  	bindings.FuncOffUserScriptConnect(
  3666  		js.Pointer(&fn),
  3667  	)
  3668  	return
  3669  }
  3670  
  3671  // OffUserScriptConnect calls the function "WEBEXT.runtime.onUserScriptConnect.removeListener" directly.
  3672  func OffUserScriptConnect(callback js.Func[func(port *Port)]) (ret js.Void) {
  3673  	bindings.CallOffUserScriptConnect(
  3674  		js.Pointer(&ret),
  3675  		callback.Ref(),
  3676  	)
  3677  
  3678  	return
  3679  }
  3680  
  3681  // TryOffUserScriptConnect calls the function "WEBEXT.runtime.onUserScriptConnect.removeListener"
  3682  // in a try/catch block and returns (_, err, ok = false) when it went through
  3683  // the catch clause.
  3684  func TryOffUserScriptConnect(callback js.Func[func(port *Port)]) (ret js.Void, exception js.Any, ok bool) {
  3685  	ok = js.True == bindings.TryOffUserScriptConnect(
  3686  		js.Pointer(&ret), js.Pointer(&exception),
  3687  		callback.Ref(),
  3688  	)
  3689  
  3690  	return
  3691  }
  3692  
  3693  // HasFuncHasOnUserScriptConnect returns true if the function "WEBEXT.runtime.onUserScriptConnect.hasListener" exists.
  3694  func HasFuncHasOnUserScriptConnect() bool {
  3695  	return js.True == bindings.HasFuncHasOnUserScriptConnect()
  3696  }
  3697  
  3698  // FuncHasOnUserScriptConnect returns the function "WEBEXT.runtime.onUserScriptConnect.hasListener".
  3699  func FuncHasOnUserScriptConnect() (fn js.Func[func(callback js.Func[func(port *Port)]) bool]) {
  3700  	bindings.FuncHasOnUserScriptConnect(
  3701  		js.Pointer(&fn),
  3702  	)
  3703  	return
  3704  }
  3705  
  3706  // HasOnUserScriptConnect calls the function "WEBEXT.runtime.onUserScriptConnect.hasListener" directly.
  3707  func HasOnUserScriptConnect(callback js.Func[func(port *Port)]) (ret bool) {
  3708  	bindings.CallHasOnUserScriptConnect(
  3709  		js.Pointer(&ret),
  3710  		callback.Ref(),
  3711  	)
  3712  
  3713  	return
  3714  }
  3715  
  3716  // TryHasOnUserScriptConnect calls the function "WEBEXT.runtime.onUserScriptConnect.hasListener"
  3717  // in a try/catch block and returns (_, err, ok = false) when it went through
  3718  // the catch clause.
  3719  func TryHasOnUserScriptConnect(callback js.Func[func(port *Port)]) (ret bool, exception js.Any, ok bool) {
  3720  	ok = js.True == bindings.TryHasOnUserScriptConnect(
  3721  		js.Pointer(&ret), js.Pointer(&exception),
  3722  		callback.Ref(),
  3723  	)
  3724  
  3725  	return
  3726  }
  3727  
  3728  type OnUserScriptMessageEventCallbackFunc func(this js.Ref, message js.Any, sender *MessageSender, sendResponse js.Func[func()]) js.Ref
  3729  
  3730  func (fn OnUserScriptMessageEventCallbackFunc) Register() js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool] {
  3731  	return js.RegisterCallback[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool](
  3732  		fn, abi.FuncPCABIInternal(fn),
  3733  	)
  3734  }
  3735  
  3736  func (fn OnUserScriptMessageEventCallbackFunc) DispatchCallback(
  3737  	targetPC uintptr, ctx *js.CallbackContext,
  3738  ) {
  3739  	args := ctx.Args()
  3740  	if len(args) != 3+1 /* js this */ ||
  3741  		targetPC != uintptr(abi.FuncPCABIInternal(fn)) {
  3742  		js.ThrowInvalidCallbackInvocation()
  3743  	}
  3744  	var arg1 MessageSender
  3745  	arg1.UpdateFrom(args[1+1])
  3746  	defer arg1.FreeMembers(true)
  3747  
  3748  	if ctx.Return(fn(
  3749  		args[0],
  3750  
  3751  		js.Any{}.FromRef(args[0+1]),
  3752  		mark.NoEscape(&arg1),
  3753  		js.Func[func()]{}.FromRef(args[2+1]),
  3754  	)) {
  3755  		return
  3756  	}
  3757  
  3758  	js.ThrowCallbackValueNotReturned()
  3759  }
  3760  
  3761  type OnUserScriptMessageEventCallback[T any] struct {
  3762  	Fn  func(arg T, this js.Ref, message js.Any, sender *MessageSender, sendResponse js.Func[func()]) js.Ref
  3763  	Arg T
  3764  }
  3765  
  3766  func (cb *OnUserScriptMessageEventCallback[T]) Register() js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool] {
  3767  	return js.RegisterCallback[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool](
  3768  		cb, abi.FuncPCABIInternal(cb.Fn),
  3769  	)
  3770  }
  3771  
  3772  func (cb *OnUserScriptMessageEventCallback[T]) DispatchCallback(
  3773  	targetPC uintptr, ctx *js.CallbackContext,
  3774  ) {
  3775  	args := ctx.Args()
  3776  	if len(args) != 3+1 /* js this */ ||
  3777  		targetPC != uintptr(abi.FuncPCABIInternal(cb.Fn)) {
  3778  		js.ThrowInvalidCallbackInvocation()
  3779  	}
  3780  	var arg1 MessageSender
  3781  	arg1.UpdateFrom(args[1+1])
  3782  	defer arg1.FreeMembers(true)
  3783  
  3784  	if ctx.Return(cb.Fn(
  3785  		cb.Arg,
  3786  		args[0],
  3787  
  3788  		js.Any{}.FromRef(args[0+1]),
  3789  		mark.NoEscape(&arg1),
  3790  		js.Func[func()]{}.FromRef(args[2+1]),
  3791  	)) {
  3792  		return
  3793  	}
  3794  
  3795  	js.ThrowCallbackValueNotReturned()
  3796  }
  3797  
  3798  // HasFuncOnUserScriptMessage returns true if the function "WEBEXT.runtime.onUserScriptMessage.addListener" exists.
  3799  func HasFuncOnUserScriptMessage() bool {
  3800  	return js.True == bindings.HasFuncOnUserScriptMessage()
  3801  }
  3802  
  3803  // FuncOnUserScriptMessage returns the function "WEBEXT.runtime.onUserScriptMessage.addListener".
  3804  func FuncOnUserScriptMessage() (fn js.Func[func(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool])]) {
  3805  	bindings.FuncOnUserScriptMessage(
  3806  		js.Pointer(&fn),
  3807  	)
  3808  	return
  3809  }
  3810  
  3811  // OnUserScriptMessage calls the function "WEBEXT.runtime.onUserScriptMessage.addListener" directly.
  3812  func OnUserScriptMessage(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret js.Void) {
  3813  	bindings.CallOnUserScriptMessage(
  3814  		js.Pointer(&ret),
  3815  		callback.Ref(),
  3816  	)
  3817  
  3818  	return
  3819  }
  3820  
  3821  // TryOnUserScriptMessage calls the function "WEBEXT.runtime.onUserScriptMessage.addListener"
  3822  // in a try/catch block and returns (_, err, ok = false) when it went through
  3823  // the catch clause.
  3824  func TryOnUserScriptMessage(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret js.Void, exception js.Any, ok bool) {
  3825  	ok = js.True == bindings.TryOnUserScriptMessage(
  3826  		js.Pointer(&ret), js.Pointer(&exception),
  3827  		callback.Ref(),
  3828  	)
  3829  
  3830  	return
  3831  }
  3832  
  3833  // HasFuncOffUserScriptMessage returns true if the function "WEBEXT.runtime.onUserScriptMessage.removeListener" exists.
  3834  func HasFuncOffUserScriptMessage() bool {
  3835  	return js.True == bindings.HasFuncOffUserScriptMessage()
  3836  }
  3837  
  3838  // FuncOffUserScriptMessage returns the function "WEBEXT.runtime.onUserScriptMessage.removeListener".
  3839  func FuncOffUserScriptMessage() (fn js.Func[func(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool])]) {
  3840  	bindings.FuncOffUserScriptMessage(
  3841  		js.Pointer(&fn),
  3842  	)
  3843  	return
  3844  }
  3845  
  3846  // OffUserScriptMessage calls the function "WEBEXT.runtime.onUserScriptMessage.removeListener" directly.
  3847  func OffUserScriptMessage(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret js.Void) {
  3848  	bindings.CallOffUserScriptMessage(
  3849  		js.Pointer(&ret),
  3850  		callback.Ref(),
  3851  	)
  3852  
  3853  	return
  3854  }
  3855  
  3856  // TryOffUserScriptMessage calls the function "WEBEXT.runtime.onUserScriptMessage.removeListener"
  3857  // in a try/catch block and returns (_, err, ok = false) when it went through
  3858  // the catch clause.
  3859  func TryOffUserScriptMessage(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret js.Void, exception js.Any, ok bool) {
  3860  	ok = js.True == bindings.TryOffUserScriptMessage(
  3861  		js.Pointer(&ret), js.Pointer(&exception),
  3862  		callback.Ref(),
  3863  	)
  3864  
  3865  	return
  3866  }
  3867  
  3868  // HasFuncHasOnUserScriptMessage returns true if the function "WEBEXT.runtime.onUserScriptMessage.hasListener" exists.
  3869  func HasFuncHasOnUserScriptMessage() bool {
  3870  	return js.True == bindings.HasFuncHasOnUserScriptMessage()
  3871  }
  3872  
  3873  // FuncHasOnUserScriptMessage returns the function "WEBEXT.runtime.onUserScriptMessage.hasListener".
  3874  func FuncHasOnUserScriptMessage() (fn js.Func[func(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) bool]) {
  3875  	bindings.FuncHasOnUserScriptMessage(
  3876  		js.Pointer(&fn),
  3877  	)
  3878  	return
  3879  }
  3880  
  3881  // HasOnUserScriptMessage calls the function "WEBEXT.runtime.onUserScriptMessage.hasListener" directly.
  3882  func HasOnUserScriptMessage(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret bool) {
  3883  	bindings.CallHasOnUserScriptMessage(
  3884  		js.Pointer(&ret),
  3885  		callback.Ref(),
  3886  	)
  3887  
  3888  	return
  3889  }
  3890  
  3891  // TryHasOnUserScriptMessage calls the function "WEBEXT.runtime.onUserScriptMessage.hasListener"
  3892  // in a try/catch block and returns (_, err, ok = false) when it went through
  3893  // the catch clause.
  3894  func TryHasOnUserScriptMessage(callback js.Func[func(message js.Any, sender *MessageSender, sendResponse js.Func[func()]) bool]) (ret bool, exception js.Any, ok bool) {
  3895  	ok = js.True == bindings.TryHasOnUserScriptMessage(
  3896  		js.Pointer(&ret), js.Pointer(&exception),
  3897  		callback.Ref(),
  3898  	)
  3899  
  3900  	return
  3901  }
  3902  
  3903  // HasFuncOpenOptionsPage returns true if the function "WEBEXT.runtime.openOptionsPage" exists.
  3904  func HasFuncOpenOptionsPage() bool {
  3905  	return js.True == bindings.HasFuncOpenOptionsPage()
  3906  }
  3907  
  3908  // FuncOpenOptionsPage returns the function "WEBEXT.runtime.openOptionsPage".
  3909  func FuncOpenOptionsPage() (fn js.Func[func() js.Promise[js.Void]]) {
  3910  	bindings.FuncOpenOptionsPage(
  3911  		js.Pointer(&fn),
  3912  	)
  3913  	return
  3914  }
  3915  
  3916  // OpenOptionsPage calls the function "WEBEXT.runtime.openOptionsPage" directly.
  3917  func OpenOptionsPage() (ret js.Promise[js.Void]) {
  3918  	bindings.CallOpenOptionsPage(
  3919  		js.Pointer(&ret),
  3920  	)
  3921  
  3922  	return
  3923  }
  3924  
  3925  // TryOpenOptionsPage calls the function "WEBEXT.runtime.openOptionsPage"
  3926  // in a try/catch block and returns (_, err, ok = false) when it went through
  3927  // the catch clause.
  3928  func TryOpenOptionsPage() (ret js.Promise[js.Void], exception js.Any, ok bool) {
  3929  	ok = js.True == bindings.TryOpenOptionsPage(
  3930  		js.Pointer(&ret), js.Pointer(&exception),
  3931  	)
  3932  
  3933  	return
  3934  }
  3935  
  3936  // HasFuncReload returns true if the function "WEBEXT.runtime.reload" exists.
  3937  func HasFuncReload() bool {
  3938  	return js.True == bindings.HasFuncReload()
  3939  }
  3940  
  3941  // FuncReload returns the function "WEBEXT.runtime.reload".
  3942  func FuncReload() (fn js.Func[func()]) {
  3943  	bindings.FuncReload(
  3944  		js.Pointer(&fn),
  3945  	)
  3946  	return
  3947  }
  3948  
  3949  // Reload calls the function "WEBEXT.runtime.reload" directly.
  3950  func Reload() (ret js.Void) {
  3951  	bindings.CallReload(
  3952  		js.Pointer(&ret),
  3953  	)
  3954  
  3955  	return
  3956  }
  3957  
  3958  // TryReload calls the function "WEBEXT.runtime.reload"
  3959  // in a try/catch block and returns (_, err, ok = false) when it went through
  3960  // the catch clause.
  3961  func TryReload() (ret js.Void, exception js.Any, ok bool) {
  3962  	ok = js.True == bindings.TryReload(
  3963  		js.Pointer(&ret), js.Pointer(&exception),
  3964  	)
  3965  
  3966  	return
  3967  }
  3968  
  3969  // HasFuncRequestUpdateCheck returns true if the function "WEBEXT.runtime.requestUpdateCheck" exists.
  3970  func HasFuncRequestUpdateCheck() bool {
  3971  	return js.True == bindings.HasFuncRequestUpdateCheck()
  3972  }
  3973  
  3974  // FuncRequestUpdateCheck returns the function "WEBEXT.runtime.requestUpdateCheck".
  3975  func FuncRequestUpdateCheck() (fn js.Func[func() js.Promise[RequestUpdateCheckReturnType]]) {
  3976  	bindings.FuncRequestUpdateCheck(
  3977  		js.Pointer(&fn),
  3978  	)
  3979  	return
  3980  }
  3981  
  3982  // RequestUpdateCheck calls the function "WEBEXT.runtime.requestUpdateCheck" directly.
  3983  func RequestUpdateCheck() (ret js.Promise[RequestUpdateCheckReturnType]) {
  3984  	bindings.CallRequestUpdateCheck(
  3985  		js.Pointer(&ret),
  3986  	)
  3987  
  3988  	return
  3989  }
  3990  
  3991  // TryRequestUpdateCheck calls the function "WEBEXT.runtime.requestUpdateCheck"
  3992  // in a try/catch block and returns (_, err, ok = false) when it went through
  3993  // the catch clause.
  3994  func TryRequestUpdateCheck() (ret js.Promise[RequestUpdateCheckReturnType], exception js.Any, ok bool) {
  3995  	ok = js.True == bindings.TryRequestUpdateCheck(
  3996  		js.Pointer(&ret), js.Pointer(&exception),
  3997  	)
  3998  
  3999  	return
  4000  }
  4001  
  4002  // HasFuncRestart returns true if the function "WEBEXT.runtime.restart" exists.
  4003  func HasFuncRestart() bool {
  4004  	return js.True == bindings.HasFuncRestart()
  4005  }
  4006  
  4007  // FuncRestart returns the function "WEBEXT.runtime.restart".
  4008  func FuncRestart() (fn js.Func[func()]) {
  4009  	bindings.FuncRestart(
  4010  		js.Pointer(&fn),
  4011  	)
  4012  	return
  4013  }
  4014  
  4015  // Restart calls the function "WEBEXT.runtime.restart" directly.
  4016  func Restart() (ret js.Void) {
  4017  	bindings.CallRestart(
  4018  		js.Pointer(&ret),
  4019  	)
  4020  
  4021  	return
  4022  }
  4023  
  4024  // TryRestart calls the function "WEBEXT.runtime.restart"
  4025  // in a try/catch block and returns (_, err, ok = false) when it went through
  4026  // the catch clause.
  4027  func TryRestart() (ret js.Void, exception js.Any, ok bool) {
  4028  	ok = js.True == bindings.TryRestart(
  4029  		js.Pointer(&ret), js.Pointer(&exception),
  4030  	)
  4031  
  4032  	return
  4033  }
  4034  
  4035  // HasFuncRestartAfterDelay returns true if the function "WEBEXT.runtime.restartAfterDelay" exists.
  4036  func HasFuncRestartAfterDelay() bool {
  4037  	return js.True == bindings.HasFuncRestartAfterDelay()
  4038  }
  4039  
  4040  // FuncRestartAfterDelay returns the function "WEBEXT.runtime.restartAfterDelay".
  4041  func FuncRestartAfterDelay() (fn js.Func[func(seconds int64) js.Promise[js.Void]]) {
  4042  	bindings.FuncRestartAfterDelay(
  4043  		js.Pointer(&fn),
  4044  	)
  4045  	return
  4046  }
  4047  
  4048  // RestartAfterDelay calls the function "WEBEXT.runtime.restartAfterDelay" directly.
  4049  func RestartAfterDelay(seconds int64) (ret js.Promise[js.Void]) {
  4050  	bindings.CallRestartAfterDelay(
  4051  		js.Pointer(&ret),
  4052  		float64(seconds),
  4053  	)
  4054  
  4055  	return
  4056  }
  4057  
  4058  // TryRestartAfterDelay calls the function "WEBEXT.runtime.restartAfterDelay"
  4059  // in a try/catch block and returns (_, err, ok = false) when it went through
  4060  // the catch clause.
  4061  func TryRestartAfterDelay(seconds int64) (ret js.Promise[js.Void], exception js.Any, ok bool) {
  4062  	ok = js.True == bindings.TryRestartAfterDelay(
  4063  		js.Pointer(&ret), js.Pointer(&exception),
  4064  		float64(seconds),
  4065  	)
  4066  
  4067  	return
  4068  }
  4069  
  4070  // HasFuncSendMessage returns true if the function "WEBEXT.runtime.sendMessage" exists.
  4071  func HasFuncSendMessage() bool {
  4072  	return js.True == bindings.HasFuncSendMessage()
  4073  }
  4074  
  4075  // FuncSendMessage returns the function "WEBEXT.runtime.sendMessage".
  4076  func FuncSendMessage() (fn js.Func[func(extensionId js.String, message js.Any, options SendMessageArgOptions) js.Promise[js.Any]]) {
  4077  	bindings.FuncSendMessage(
  4078  		js.Pointer(&fn),
  4079  	)
  4080  	return
  4081  }
  4082  
  4083  // SendMessage calls the function "WEBEXT.runtime.sendMessage" directly.
  4084  func SendMessage(extensionId js.String, message js.Any, options SendMessageArgOptions) (ret js.Promise[js.Any]) {
  4085  	bindings.CallSendMessage(
  4086  		js.Pointer(&ret),
  4087  		extensionId.Ref(),
  4088  		message.Ref(),
  4089  		js.Pointer(&options),
  4090  	)
  4091  
  4092  	return
  4093  }
  4094  
  4095  // TrySendMessage calls the function "WEBEXT.runtime.sendMessage"
  4096  // in a try/catch block and returns (_, err, ok = false) when it went through
  4097  // the catch clause.
  4098  func TrySendMessage(extensionId js.String, message js.Any, options SendMessageArgOptions) (ret js.Promise[js.Any], exception js.Any, ok bool) {
  4099  	ok = js.True == bindings.TrySendMessage(
  4100  		js.Pointer(&ret), js.Pointer(&exception),
  4101  		extensionId.Ref(),
  4102  		message.Ref(),
  4103  		js.Pointer(&options),
  4104  	)
  4105  
  4106  	return
  4107  }
  4108  
  4109  // HasFuncSendNativeMessage returns true if the function "WEBEXT.runtime.sendNativeMessage" exists.
  4110  func HasFuncSendNativeMessage() bool {
  4111  	return js.True == bindings.HasFuncSendNativeMessage()
  4112  }
  4113  
  4114  // FuncSendNativeMessage returns the function "WEBEXT.runtime.sendNativeMessage".
  4115  func FuncSendNativeMessage() (fn js.Func[func(application js.String, message js.Any) js.Promise[js.Any]]) {
  4116  	bindings.FuncSendNativeMessage(
  4117  		js.Pointer(&fn),
  4118  	)
  4119  	return
  4120  }
  4121  
  4122  // SendNativeMessage calls the function "WEBEXT.runtime.sendNativeMessage" directly.
  4123  func SendNativeMessage(application js.String, message js.Any) (ret js.Promise[js.Any]) {
  4124  	bindings.CallSendNativeMessage(
  4125  		js.Pointer(&ret),
  4126  		application.Ref(),
  4127  		message.Ref(),
  4128  	)
  4129  
  4130  	return
  4131  }
  4132  
  4133  // TrySendNativeMessage calls the function "WEBEXT.runtime.sendNativeMessage"
  4134  // in a try/catch block and returns (_, err, ok = false) when it went through
  4135  // the catch clause.
  4136  func TrySendNativeMessage(application js.String, message js.Any) (ret js.Promise[js.Any], exception js.Any, ok bool) {
  4137  	ok = js.True == bindings.TrySendNativeMessage(
  4138  		js.Pointer(&ret), js.Pointer(&exception),
  4139  		application.Ref(),
  4140  		message.Ref(),
  4141  	)
  4142  
  4143  	return
  4144  }
  4145  
  4146  // HasFuncSetUninstallURL returns true if the function "WEBEXT.runtime.setUninstallURL" exists.
  4147  func HasFuncSetUninstallURL() bool {
  4148  	return js.True == bindings.HasFuncSetUninstallURL()
  4149  }
  4150  
  4151  // FuncSetUninstallURL returns the function "WEBEXT.runtime.setUninstallURL".
  4152  func FuncSetUninstallURL() (fn js.Func[func(url js.String) js.Promise[js.Void]]) {
  4153  	bindings.FuncSetUninstallURL(
  4154  		js.Pointer(&fn),
  4155  	)
  4156  	return
  4157  }
  4158  
  4159  // SetUninstallURL calls the function "WEBEXT.runtime.setUninstallURL" directly.
  4160  func SetUninstallURL(url js.String) (ret js.Promise[js.Void]) {
  4161  	bindings.CallSetUninstallURL(
  4162  		js.Pointer(&ret),
  4163  		url.Ref(),
  4164  	)
  4165  
  4166  	return
  4167  }
  4168  
  4169  // TrySetUninstallURL calls the function "WEBEXT.runtime.setUninstallURL"
  4170  // in a try/catch block and returns (_, err, ok = false) when it went through
  4171  // the catch clause.
  4172  func TrySetUninstallURL(url js.String) (ret js.Promise[js.Void], exception js.Any, ok bool) {
  4173  	ok = js.True == bindings.TrySetUninstallURL(
  4174  		js.Pointer(&ret), js.Pointer(&exception),
  4175  		url.Ref(),
  4176  	)
  4177  
  4178  	return
  4179  }