forked from cztomczak/cef2go
-
Notifications
You must be signed in to change notification settings - Fork 6
/
cef_life_span_handler.go
40 lines (33 loc) · 973 Bytes
/
cef_life_span_handler.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Copyright (c) 2014 The cefcapi authors. All rights reserved.
// License: BSD 3-clause.
// Website: https://github.com/fromkeith/cefcapi
package cef
/*
#include <stdlib.h>
#include "include/capi/cef_client_capi.h"
#include "include/capi/cef_life_span_handler_capi.h"
*/
import "C"
import (
"errors"
"time"
)
type LifeSpanHandler struct {
browser chan *Browser
}
func (l *LifeSpanHandler) RegisterAndWaitForBrowser() (browser *Browser, err error) {
select {
case b := <-l.browser:
return b, nil
// browser couldnt be created
case <-time.After(5 * time.Second):
return nil, errors.New("Timedout waiting for browser to be created")
}
}
func (l *LifeSpanHandler) OnAfterCreated(browser *Browser) {
url := browser.GetURL()
log.Debug("created browser, handled by lifespan %v, url %s\n", browser, url)
l.browser <- browser
}
var _LifeSpanHandler *C.struct__cef_life_span_handler_t // requires reference counting
var globalLifespanHandler *LifeSpanHandler