cef

package module
v0.0.0-...-cac90e3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 9, 2018 License: BSD-3-Clause Imports: 17 Imported by: 0

README

lroc/cef

This is a modify version of https://github.com/CzarekTomczak/cef2go/.

How to build on Windows platform (Win7 32/64-bit).

  1. Make sure you have installed windows-386 version of Go (for example: 1.5.1)
  2. Install mingw and add C:\MinGW\bin to PATH. You can install mingw using mingw-get-setup.exe. Select packages to install: "mingw-developer-toolkit", "mingw32-base", "msys-base".
  3. Download CEF 3 branch 2171 revision 1897 binaries: cef_binary_3.2171.1897_windows32.7z Copy Release/* to cef/Release Copy Resources/* to cef/Release
  4. Run [go build] in the directory

This code only supports Windows platforms.

Documentation

Index

Constants

View Source
const (
	LOGSEVERITY_DEFAULT = C.LOGSEVERITY_DEFAULT
	LOGSEVERITY_VERBOSE = C.LOGSEVERITY_VERBOSE
	LOGSEVERITY_INFO    = C.LOGSEVERITY_INFO
	LOGSEVERITY_WARNING = C.LOGSEVERITY_WARNING
	LOGSEVERITY_ERROR   = C.LOGSEVERITY_ERROR
	//LOGSEVERITY_ERROR_REPORT = C.LOGSEVERITY_ERROR_REPORT
	LOGSEVERITY_DISABLE = C.LOGSEVERITY_DISABLE
)
View Source
const (
	KEYEVENT_RAWKEYDOWN = 0
	KEYEVENT_KEYDOWN    = 1
	KEYEVENT_KEYUP      = 2
	KEYEVENT_CHAR       = 3
)

C.cef_key_event_type_t

View Source
const (
	MBT_LEFT   = 0
	MBT_MIDDLE = 1
	MBT_RIGHT  = 2
)

Variables

View Source
var Header map[string]string
View Source
var V8CallbackHandlers map[string]V8CallbackHandler
View Source
var V8Callbacks map[string]V8Callback
View Source
var V8Handlers map[string]V8Handler

Functions

func CEFString

func CEFString(original string) (final *C.cef_string_t)

func CEFToGoString

func CEFToGoString(source *C.cef_string_t) string

func DeleteAllCookiesExec

func DeleteAllCookiesExec()

func ExecuteProcess

func ExecuteProcess(appHandle unsafe.Pointer) int

func FillMainArgs

func FillMainArgs(mainArgs *C.struct__cef_main_args_t, appHandle unsafe.Pointer)

func FillWindowInfo

func FillWindowInfo(windowInfo *C.cef_window_info_t, hwnd unsafe.Pointer)

func Initialize

func Initialize(settings Settings) int

func OnUIThread

func OnUIThread() bool

func PostTask

func PostTask(thread ThreadId, t TaskToExecute)

allows you to execute a task on the specified thread

func QuitMessageLoop

func QuitMessageLoop()

func RegisterV8Callback

func RegisterV8Callback(name string, callback V8Callback)

func RegisterV8CallbackHandler

func RegisterV8CallbackHandler(name string, callback V8CallbackHandler)

func RegisterV8Handler

func RegisterV8Handler(name string, handler V8Handler)

func RunMessageLoop

func RunMessageLoop()

func SafeExecuteJavaScript

func SafeExecuteJavaScript(browser *C.cef_browser_t, code, url string, startLine int)

func SetConsoleHandler

func SetConsoleHandler(handler ConsoleHandlerFunc)

func SetupCreateBrowserWindowCallback

func SetupCreateBrowserWindowCallback(handler CreateBrowserWindowCallback)

func Shutdown

func Shutdown()

func TransferStringMapContents

func TransferStringMapContents(fromMap C.cef_string_map_t) map[string]string

func TransferStringMapContentsToC

func TransferStringMapContentsToC(fromMap map[string]string, toMap C.cef_string_map_t)

func V8ValueToBool

func V8ValueToBool(v V8Value) bool

func V8ValueToInt32

func V8ValueToInt32(v V8Value) int32

func V8ValueToString

func V8ValueToString(v V8Value) string

Types

type Browser

type Browser struct {
	Id int

	RenderHandler RenderHandler
	// contains filtered or unexported fields
}

func BrowserByHandle

func BrowserByHandle(handle unsafe.Pointer) (browser *Browser, ok bool)

func BrowserById

func BrowserById(id int) (browser *Browser, ok bool)

func CreateBrowser

func CreateBrowser(hwnd unsafe.Pointer, browserSettings *BrowserSettings, url string, offscreenRendering bool) (browser *Browser)

func MainBrowser

func MainBrowser() (browser *Browser, ok bool)

func (Browser) Close

func (b Browser) Close()

func (Browser) DeleteAllCookies

func (b Browser) DeleteAllCookies()

func (Browser) Eval

func (b Browser) Eval(string_val string) string

This method can only used in Renderer process

func (Browser) ExecuteJavaScript

func (b Browser) ExecuteJavaScript(code, url string, startLine int)

执行JS

func (Browser) ExecuteJavaScriptWithResult

func (b Browser) ExecuteJavaScriptWithResult(code string) string

`var cefEvalFunc = function() { return 1; };var cef_result = cefEvalFunc();app.cefResult(cef_result);`

func (Browser) GetCStruct

func (b Browser) GetCStruct() *C.cef_browser_t

func (Browser) GetFocusedFrame

func (b Browser) GetFocusedFrame() (frame *CefFrame)

func (Browser) GetFrame

func (b Browser) GetFrame(name string) (frame *CefFrame)

func (Browser) GetFrameByIdent

func (b Browser) GetFrameByIdent(identifier int64) (frame *CefFrame)

func (Browser) GetFrameCount

func (b Browser) GetFrameCount() int

func (Browser) GetFrameIdentifiers

func (b Browser) GetFrameIdentifiers() []int64

func (Browser) GetFrameNames

func (b Browser) GetFrameNames() []string

func (Browser) GetHost

func (b Browser) GetHost() (host *BrowserHost)

func (Browser) GetMainFrame

func (b Browser) GetMainFrame() (frame *CefFrame)

func (Browser) GetOpenerWindowHandle

func (b Browser) GetOpenerWindowHandle() unsafe.Pointer

func (Browser) GetRootWindowHandle

func (b Browser) GetRootWindowHandle() unsafe.Pointer

func (Browser) GetSource

func (b Browser) GetSource() string

func (Browser) GetText

func (b Browser) GetText() string

func (Browser) GetURL

func (b Browser) GetURL() string

func (Browser) GetV8Context

func (b Browser) GetV8Context() *C.cef_v8context_t

This method can only used in Renderer process

func (Browser) GetWindowHandle

func (b Browser) GetWindowHandle() unsafe.Pointer

func (Browser) InjectJs

func (b Browser) InjectJs(filename string)

func (Browser) LoadString

func (b Browser) LoadString(string_val, url string)

func (Browser) LoadURL

func (b Browser) LoadURL(url string)

func (Browser) SendProcessMessage

func (b Browser) SendProcessMessage(target_process C.cef_process_id_t,
	message *C.struct__cef_process_message_t) int

func (Browser) SendProcessMessageTest

func (b Browser) SendProcessMessageTest()

func (Browser) TriggerPaint

func (b Browser) TriggerPaint()

func (Browser) VisitDOM

func (b Browser) VisitDOM()

This method can only used in Renderer process

type BrowserHost

type BrowserHost struct {
	// contains filtered or unexported fields
}

func (*BrowserHost) SendKeyEvent

func (h *BrowserHost) SendKeyEvent(event *CefKeyEvent)

func (*BrowserHost) SendMouseClickEvent

func (h *BrowserHost) SendMouseClickEvent(event *CefMouseEvent, buttonType int, mouseUp bool, clickCount int)
    // 鼠标左键点击
	var event CefMouseEvent
	event.X = 120
	event.Y = 160
	event.Modifiers = 0
	h.SendMouseClickEvent(&event, MBT_LEFT, false, 1)
	h.SendMouseClickEvent(&event, MBT_LEFT, true, 1)

func (*BrowserHost) SendMouseMoveEvent

func (h *BrowserHost) SendMouseMoveEvent(event *CefMouseEvent)

func (*BrowserHost) SetFocus

func (h *BrowserHost) SetFocus(focus bool)

type BrowserSettings

type BrowserSettings struct {
	///
	// Controls whether file URLs will have access to all URLs. Also configurable
	// using the "allow-universal-access-from-files" command-line switch.
	///
	UniversalAccessFromFileUrls bool

	///
	// Controls whether file URLs will have access to other file URLs. Also
	// configurable using the "allow-access-from-files" command-line switch.
	///
	FileAccessFromFileUrls bool

	///
	// Controls whether web security restrictions (same-origin policy) will be
	// enforced. Disabling this setting is not recommend as it will allow risky
	// security behavior such as cross-site scripting (XSS). Also configurable
	// using the "disable-web-security" command-line switch.
	///
	WebSecurity bool
	///
	// Controls whether WebGL can be used. Note that WebGL requires hardware
	// support and may not work on all systems even when enabled. Also
	// configurable using the "disable-webgl" command-line switch.
	///
	Webgl bool

	///
	// Controls whether content that depends on accelerated compositing can be
	// used. Note that accelerated compositing requires hardware support and may
	// not work on all systems even when enabled. Also configurable using the
	// "disable-accelerated-compositing" command-line switch.
	///
	AcceleratedCompositing bool
}

func (BrowserSettings) ToCStruct

func (b BrowserSettings) ToCStruct() (cefBrowserSettings *C.struct__cef_browser_settings_t)

type CefCursorHandle

type CefCursorHandle C.cef_cursor_handle_t

type CefDOMVisitor

type CefDOMVisitor struct {
	CStruct *C.struct__cef_domvisitor_t
	// contains filtered or unexported fields
}

func NewCefDOMVisitor

func NewCefDOMVisitor() *CefDOMVisitor

func (*CefDOMVisitor) Add

func (v *CefDOMVisitor) Add(n int)

func (*CefDOMVisitor) Close

func (v *CefDOMVisitor) Close()

func (*CefDOMVisitor) Done

func (v *CefDOMVisitor) Done()

func (*CefDOMVisitor) Wait

func (v *CefDOMVisitor) Wait()

type CefFrame

type CefFrame struct {
	CStruct *C.struct__cef_frame_t
}

func (CefFrame) ExecuteJavaScript

func (self CefFrame) ExecuteJavaScript(code, url string, startLine int)

执行JS

func (CefFrame) ExecuteJavaScriptWithResult

func (self CefFrame) ExecuteJavaScriptWithResult(code string) string

`var cefEvalFunc = function() { return 1; };var cef_result = cefEvalFunc();app.cefResult(cef_result);`

func (CefFrame) GetBrowser

func (self CefFrame) GetBrowser() (browser *Browser)

func (CefFrame) GetSource

func (self CefFrame) GetSource() string

func (CefFrame) GetText

func (self CefFrame) GetText() string

func (CefFrame) GetURL

func (self CefFrame) GetURL() string

func (CefFrame) IsValid

func (self CefFrame) IsValid() bool

type CefKeyEvent

type CefKeyEvent struct {
	Type                int // C.cef_key_event_type_t
	Modifiers           uint32
	WindowsKeyCode      int
	NativeKeyCode       int
	Character           int
	UnmodifiedCharacter int
	IsSystemKey         bool
}

type CefListValue

type CefListValue struct {
	CStruct *C.struct__cef_list_value_t
}

func (*CefListValue) Clear

func (l *CefListValue) Clear()

func (*CefListValue) Copy

func (l *CefListValue) Copy() (o *CefListValue)

func (*CefListValue) GetBool

func (l *CefListValue) GetBool(index int) bool

func (*CefListValue) GetDouble

func (l *CefListValue) GetDouble(index int) float64

func (*CefListValue) GetInt

func (l *CefListValue) GetInt(index int) int

func (*CefListValue) GetSize

func (l *CefListValue) GetSize() int

func (*CefListValue) GetString

func (l *CefListValue) GetString(index int) string

func (*CefListValue) GetType

func (l *CefListValue) GetType(index int) C.cef_value_type_t

func (*CefListValue) IsOwned

func (l *CefListValue) IsOwned() bool

func (*CefListValue) IsReadOnly

func (l *CefListValue) IsReadOnly() bool

func (*CefListValue) IsValid

func (l *CefListValue) IsValid() bool

func (*CefListValue) Remove

func (l *CefListValue) Remove(index int)

func (*CefListValue) SetBool

func (l *CefListValue) SetBool(index int, value bool) bool

func (*CefListValue) SetDouble

func (l *CefListValue) SetDouble(index int, value float64) bool

func (*CefListValue) SetInt

func (l *CefListValue) SetInt(index int, value int) bool

func (*CefListValue) SetNull

func (l *CefListValue) SetNull(index int) bool

func (*CefListValue) SetSize

func (l *CefListValue) SetSize(size int)

func (*CefListValue) SetString

func (l *CefListValue) SetString(index int, value string) bool

type CefMouseEvent

type CefMouseEvent struct {
	X         int
	Y         int
	Modifiers uint32
}

type CefPaintElementType

type CefPaintElementType C.cef_paint_element_type_t

type CefProcessMessage

type CefProcessMessage struct {
	CStruct *C.struct__cef_process_message_t
}

PID_BROWSER, PID_RENDERER

func CefProcessMessageCreate

func CefProcessMessageCreate(name string) (message *CefProcessMessage)

func NewCefProcessMessage

func NewCefProcessMessage(m *C.struct__cef_process_message_t) (message *CefProcessMessage)

func (*CefProcessMessage) Copy

func (m *CefProcessMessage) Copy() (c *CefProcessMessage)

func (*CefProcessMessage) GetArgumentList

func (m *CefProcessMessage) GetArgumentList() (listValue *CefListValue)

func (*CefProcessMessage) GetName

func (m *CefProcessMessage) GetName() string

func (*CefProcessMessage) IsReadOnly

func (m *CefProcessMessage) IsReadOnly() bool

func (*CefProcessMessage) IsValid

func (m *CefProcessMessage) IsValid() bool

type CefRect

type CefRect C.cef_rect_t

func (*CefRect) SetDimensions

func (r *CefRect) SetDimensions(x, y, width, height int)

type CefScreenInfo

type CefScreenInfo C.cef_screen_info_t

type CefStringVisitor

type CefStringVisitor struct {
	CStruct *C.struct__cef_string_visitor_t
	// contains filtered or unexported fields
}

func NewCefStringVisitor

func NewCefStringVisitor() *CefStringVisitor

func (*CefStringVisitor) Add

func (v *CefStringVisitor) Add(n int)

func (*CefStringVisitor) Close

func (v *CefStringVisitor) Close()

func (*CefStringVisitor) Done

func (v *CefStringVisitor) Done(err error)

func (*CefStringVisitor) Wait

func (v *CefStringVisitor) Wait(timeout time.Duration) (error, bool)

type ConsoleHandlerFunc

type ConsoleHandlerFunc func(message, source string, line int)

Set up the js console handlers

var DefaultConsoleHandler ConsoleHandlerFunc = ConsoleHandlerFunc(func(message, source string, line int) {
	logger.Printf("[console:%s %d] %s\n", source, line, message)
})

type CreateBrowserWindowCallback

type CreateBrowserWindowCallback func(string) unsafe.Pointer

type DefaultRenderHandler

type DefaultRenderHandler struct {
	Browser *Browser
}

func (*DefaultRenderHandler) GetRootScreenRect

func (d *DefaultRenderHandler) GetRootScreenRect(rect *CefRect) int

func (*DefaultRenderHandler) GetScreenInfo

func (d *DefaultRenderHandler) GetScreenInfo(info *CefScreenInfo) int

func (*DefaultRenderHandler) GetScreenPoint

func (d *DefaultRenderHandler) GetScreenPoint(x, y int, screenX, screenY *int) int

func (*DefaultRenderHandler) GetViewRect

func (d *DefaultRenderHandler) GetViewRect(rect *CefRect) int

func (*DefaultRenderHandler) OnCursorChange

func (d *DefaultRenderHandler) OnCursorChange(cursor CefCursorHandle)

func (*DefaultRenderHandler) OnPaint

func (d *DefaultRenderHandler) OnPaint(paintType CefPaintElementType, dirtyRectsCount int, dirtyRects unsafe.Pointer, buffer unsafe.Pointer, width, height int)

func (*DefaultRenderHandler) OnPopupShow

func (d *DefaultRenderHandler) OnPopupShow(show int)

func (*DefaultRenderHandler) OnPopupSize

func (d *DefaultRenderHandler) OnPopupSize(size *CefRect)

func (*DefaultRenderHandler) OnScrollOffsetChanged

func (d *DefaultRenderHandler) OnScrollOffsetChanged()

type LifeSpanHandler

type LifeSpanHandler struct {
	// contains filtered or unexported fields
}

func (*LifeSpanHandler) BeforeClose

func (l *LifeSpanHandler) BeforeClose(browser *Browser)

func (*LifeSpanHandler) DoClose

func (l *LifeSpanHandler) DoClose(browser *Browser) int

func (*LifeSpanHandler) OnAfterCreated

func (l *LifeSpanHandler) OnAfterCreated(browser *Browser)

func (*LifeSpanHandler) RegisterAndWaitForBrowser

func (l *LifeSpanHandler) RegisterAndWaitForBrowser() (browser *Browser, err error)

func (*LifeSpanHandler) RunModal

func (l *LifeSpanHandler) RunModal(browser *Browser) int

type MouseButtonType

type MouseButtonType C.cef_mouse_button_type_t

type RenderHandler

type RenderHandler interface {
	GetRootScreenRect(*CefRect) int
	GetViewRect(*CefRect) int
	GetScreenPoint(int, int, *int, *int) int
	GetScreenInfo(*CefScreenInfo) int
	OnPopupShow(int)
	OnPopupSize(*CefRect)
	OnPaint(CefPaintElementType, int, unsafe.Pointer, unsafe.Pointer, int, int)
	OnCursorChange(CefCursorHandle)
	OnScrollOffsetChanged()
}

type Settings

type Settings struct {
	SingleProcess           int
	BrowserSubprocessPath   string
	CommandLineArgsDisabled int
	UserAgent               string
	CachePath               string
	LogSeverity             int
	LogFile                 string
	Locale                  string
	ResourcesDirPath        string
	LocalesDirPath          string
	JavaScriptFlags         string
	RemoteDebuggingPort     int
}

func (*Settings) ToCStruct

func (settings *Settings) ToCStruct() (cefSettings *C.struct__cef_settings_t)

type TaskToExecute

type TaskToExecute func()

type ThreadId

type ThreadId int
const (
	TID_UI ThreadId = iota
	TID_DB
	TID_FILE
	TID_FILE_USER_BLOCKING
	TID_PROCESS_LAUNCHER
	TID_CACHE
	TID_IO
	TID_RENDERER
)

type V8Callback

type V8Callback func([]V8Value)

type V8CallbackHandler

type V8CallbackHandler func(*Browser, *CefProcessMessage) interface{}

type V8Handler

type V8Handler func(*Browser, []V8Value) interface{}

type V8Value

type V8Value *C.cef_v8value_t

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL