Documentation ¶
Index ¶
- Constants
- func ListAllowedVariables() []string
- type BorrowFn
- type BorrowStats
- type Borrower
- type BrowserData
- type BrowserRunner
- type CmdRunnerBuilder
- type DevToolsURLNotFoundError
- type Factory
- func (factory *Factory) ActivateObject(ctx context.Context, object *pool.PooledObject) error
- func (factory *Factory) Close(ctx context.Context) error
- func (factory *Factory) DestroyObject(ctx context.Context, object *pool.PooledObject) (err error)
- func (factory *Factory) MakeObject(ctx context.Context) (*pool.PooledObject, error)
- func (factory *Factory) PassivateObject(ctx context.Context, object *pool.PooledObject) error
- func (factory *Factory) Type() string
- func (factory *Factory) ValidateObject(ctx context.Context, object *pool.PooledObject) bool
- type FactoryConfig
- type FactoryType
- type LifecycleEventClient
- type Page
- type PageCdpWrapperFactory
- func (factory *PageCdpWrapperFactory) Close(ctx context.Context) error
- func (factory *PageCdpWrapperFactory) Destroy(ctx context.Context, client *PageWrapper) (err error)
- func (factory *PageCdpWrapperFactory) Make(ctx context.Context) (*PageWrapper, error)
- func (*PageCdpWrapperFactory) Type() string
- type PageProvider
- type PageWrapper
- type PageWrapperFactory
- type PoolBorrower
- type PoolConfig
- type Render
- type RenderConfig
- type Runner
- type RunnerBuilder
- type RunnerCdpWrapperFactory
- type RunnerConfig
- type TracedPage
- func (tracedPage *TracedPage) Disable(ctx context.Context) error
- func (tracedPage *TracedPage) Enable(ctx context.Context) error
- func (tracedPage *TracedPage) GetNavigationHistory(ctx context.Context) (*page.GetNavigationHistoryReply, error)
- func (tracedPage *TracedPage) LifecycleEvent(ctx context.Context) (page.LifecycleEventClient, error)
- func (tracedPage *TracedPage) Navigate(ctx context.Context, args *page.NavigateArgs) (*page.NavigateReply, error)
- func (tracedPage *TracedPage) PrintToPDF(ctx context.Context, args *page.PrintToPDFArgs) (*page.PrintToPDFReply, error)
- func (tracedPage *TracedPage) Reload(ctx context.Context, args *page.ReloadArgs) error
- func (tracedPage *TracedPage) SetLifecycleEventsEnabled(ctx context.Context, args *page.SetLifecycleEventsEnabledArgs) error
- type TypedFactory
- type UnexpectedFactoryTypeError
Constants ¶
const ( RunnerFactoryType = FactoryType("runner") PageFactoryType = FactoryType("page") )
runner - start new browser instance. runner - open browser tab.
const ( TempDirVariable = "%{TMP_DIR}" TempIDVariable = "%{TMP_ID}" )
Substitution variables.
const (
DefaultRenderTimeout = time.Second * 30
)
Default values for RenderConfig.
Variables ¶
This section is empty.
Functions ¶
func ListAllowedVariables ¶
func ListAllowedVariables() []string
ListAllowedVariables return all known variables.
Types ¶
type BorrowFn ¶
type BorrowFn func(context.Context, PageProvider) error
BorrowFn called when borrowed CDP client.
type BorrowStats ¶
BorrowStats returned by Borrower.Stats().
type Borrower ¶
type Borrower interface { Borrow(context.Context, BorrowFn) error Stats() BorrowStats PoolType() string }
Borrower of CDP clients.
type BrowserData ¶
type BrowserData struct {
// contains filtered or unexported fields
}
BrowserData passed to browser command line arguments.
type BrowserRunner ¶
type BrowserRunner struct {
// contains filtered or unexported fields
}
BrowserRunner run browser with command and args, and parse debugger WebSocket URL from stdout.
func NewBrowserRunner ¶
func NewBrowserRunner( config RunnerConfig, logger log.Logger, tracerProvider trace.TracerProvider, ) (*BrowserRunner, error)
NewBrowserRunner constructor.
type CmdRunnerBuilder ¶
type CmdRunnerBuilder struct {
// contains filtered or unexported fields
}
CmdRunnerBuilder default implementation of RunnerFactory.
func NewCmdRunnerBuilder ¶
func NewCmdRunnerBuilder( runnerConfig RunnerConfig, logger log.Logger, tracerProvider trace.TracerProvider, ) *CmdRunnerBuilder
NewCmdRunnerBuilder constructor.
func (*CmdRunnerBuilder) BuildRunner ¶
func (runnerBuilder *CmdRunnerBuilder) BuildRunner() (Runner, error)
BuildRunner with runner config.
type DevToolsURLNotFoundError ¶
type DevToolsURLNotFoundError struct{}
DevToolsURLNotFoundError browser not return DevTools URL.
func NewDevToolsURLNotFoundError ¶
func NewDevToolsURLNotFoundError() *DevToolsURLNotFoundError
NewDevToolsURLNotFoundError constructor.
func (*DevToolsURLNotFoundError) Error ¶
func (*DevToolsURLNotFoundError) Error() string
type Factory ¶
type Factory struct {
// contains filtered or unexported fields
}
Factory make CDP client.
func NewFactory ¶
func NewFactory( ctx context.Context, logger log.Logger, runnerFactory RunnerBuilder, config FactoryConfig, tracerProvider trace.TracerProvider, ) (*Factory, error)
NewFactory constructor.
func ProvideFactory ¶ added in v0.11.1
func ProvideFactory( ctx context.Context, logger log.Logger, runnerFactory RunnerBuilder, config FactoryConfig, tracerProvider trace.TracerProvider, ) (*Factory, func(), error)
ProvideFactory like NewFactory but return safe close function.
func (*Factory) ActivateObject ¶
ActivateObject enable page.
func (*Factory) DestroyObject ¶
func (factory *Factory) DestroyObject(ctx context.Context, object *pool.PooledObject) ( err error, )
DestroyObject destroy CDP client.
func (*Factory) MakeObject ¶
MakeObject create CDP client.
func (*Factory) PassivateObject ¶
PassivateObject disable page.
func (*Factory) ValidateObject ¶
ValidateObject validate CDP client (reload page).
type FactoryConfig ¶
type FactoryConfig struct { MaxGetPageAttempts int GetPageRetryDelay time.Duration MaxUsageCount int RPCBufferSize int FactoryType FactoryType }
FactoryConfig for browser factory pool.
func DefaultFactoryConfig ¶ added in v0.7.2
func DefaultFactoryConfig() FactoryConfig
DefaultFactoryConfig provider.
revive:disable:add-constant
func (*FactoryConfig) BindFlags ¶ added in v0.9.0
func (config *FactoryConfig) BindFlags() []cli.Flag
BindFlags bind factory config flags.
type FactoryType ¶
type FactoryType string
FactoryType define used factory type (new browser instance or new tab into browser).
func FactoryTypeList ¶
func FactoryTypeList() []FactoryType
FactoryTypeList return all valid factory types.
func (*FactoryType) Set ¶
func (factoryType *FactoryType) Set(value string) error
Set value from flags.
func (FactoryType) String ¶
func (factoryType FactoryType) String() string
type LifecycleEventClient ¶
type LifecycleEventClient interface { page.LifecycleEventClient }
LifecycleEventClient alias of page.LifecycleEventClient for mocks.
type Page ¶
type Page interface { Enable(context.Context) error Disable(context.Context) error Reload(context.Context, *page.ReloadArgs) error SetLifecycleEventsEnabled(context.Context, *page.SetLifecycleEventsEnabledArgs) error LifecycleEvent(context.Context) (page.LifecycleEventClient, error) PrintToPDF(context.Context, *page.PrintToPDFArgs) (*page.PrintToPDFReply, error) }
Page alias of cdp.Page for mocks.
type PageCdpWrapperFactory ¶
type PageCdpWrapperFactory struct {
// contains filtered or unexported fields
}
PageCdpWrapperFactory create page (tab) on browser instance.
func NewPageCdpWrapperFactory ¶
func NewPageCdpWrapperFactory( ctx context.Context, logger log.Logger, runnerBuilder RunnerBuilder, config FactoryConfig, tracerProvider trace.TracerProvider, ) (*PageCdpWrapperFactory, error)
NewPageCdpWrapperFactory constructor.
func (*PageCdpWrapperFactory) Close ¶
func (factory *PageCdpWrapperFactory) Close(ctx context.Context) error
Close factory (stop browser instance).
func (*PageCdpWrapperFactory) Destroy ¶
func (factory *PageCdpWrapperFactory) Destroy(ctx context.Context, client *PageWrapper) ( err error, )
Destroy page.
func (*PageCdpWrapperFactory) Make ¶
func (factory *PageCdpWrapperFactory) Make(ctx context.Context) (*PageWrapper, error)
Make create new page and open debugger endpoint.
type PageProvider ¶
PageProvider define *CdpWrapper interface.
type PageWrapper ¶
type PageWrapper struct {
// contains filtered or unexported fields
}
PageWrapper argument for borrower.
func (*PageWrapper) GetDevTools ¶
func (wrapper *PageWrapper) GetDevTools() *devtool.DevTools
GetDevTools returns wrapped *devTools.DevTools object.
func (*PageWrapper) GetPage ¶
func (wrapper *PageWrapper) GetPage() Page
GetPage returns wrapped page object.
type PageWrapperFactory ¶
type PageWrapperFactory interface { Make(context.Context) (*PageWrapper, error) Destroy(context.Context, *PageWrapper) error Close(context.Context) error Type() string }
PageWrapperFactory define factory for CDpWrapper instances.
type PoolBorrower ¶
type PoolBorrower struct {
// contains filtered or unexported fields
}
PoolBorrower borrow CDP client from pool.
func ProvidePoolBorrower ¶
func ProvidePoolBorrower( ctx context.Context, clientFactory TypedFactory, config PoolConfig, tracerProvider trace.TracerProvider, ) (*PoolBorrower, func())
ProvidePoolBorrower build borrower pool and start it.
func (*PoolBorrower) Borrow ¶
func (poolBorrower *PoolBorrower) Borrow(ctx context.Context, fn BorrowFn) (err error)
Borrow CDP client.
func (*PoolBorrower) PoolType ¶
func (poolBorrower *PoolBorrower) PoolType() string
PoolType return type of internal pool.
func (*PoolBorrower) Stats ¶
func (poolBorrower *PoolBorrower) Stats() BorrowStats
Stats from internal pool.
type PoolConfig ¶
PoolConfig for PDFRender object pool.
func DefaultPoolConfig ¶ added in v0.7.2
func DefaultPoolConfig() PoolConfig
DefaultPoolConfig provider.
func (*PoolConfig) BindFlags ¶ added in v0.9.0
func (config *PoolConfig) BindFlags() []cli.Flag
BindFlags bind flags to config.
type Render ¶
type Render struct {
// contains filtered or unexported fields
}
Render is CeDT based PDFRender implementation.
func NewRender ¶
func NewRender( ctx context.Context, pool Borrower, renderConfig RenderConfig, store server.Store, internalServer server.Server, tracerProvider trace.TracerProvider, ) *Render
NewRender constructor.
revive:disable:argument-limit
type RenderConfig ¶
type RenderConfig struct { WaitLifecycleEvent pdfrender.WaitLifecycleEvent RenderTimeout time.Duration }
RenderConfig for BrowserRender.
func DefaultRenderConfig ¶
func DefaultRenderConfig() RenderConfig
DefaultRenderConfig return RenderConfig with default values.
func (*RenderConfig) BindFlags ¶ added in v0.9.0
func (config *RenderConfig) BindFlags() []cli.Flag
BindFlags binds flags to config.
type Runner ¶
type Runner interface { Run(context.Context) (wsURL string, err error) Stop(context.Context) error }
Runner for browser instance.
type RunnerBuilder ¶
RunnerBuilder build runners.
type RunnerCdpWrapperFactory ¶
type RunnerCdpWrapperFactory struct {
// contains filtered or unexported fields
}
RunnerCdpWrapperFactory make and destroy runner (browser instance) CdpWrapper's.
func NewRunnerCdpWrapperFactory ¶
func NewRunnerCdpWrapperFactory( logger log.Logger, runnerBuilder RunnerBuilder, config FactoryConfig, tracerProvider trace.TracerProvider, ) *RunnerCdpWrapperFactory
NewRunnerCdpWrapperFactory constructor.
func (*RunnerCdpWrapperFactory) Close ¶
func (*RunnerCdpWrapperFactory) Close(context.Context) error
Close factory (stop runner).
func (*RunnerCdpWrapperFactory) Destroy ¶
func (factory *RunnerCdpWrapperFactory) Destroy(ctx context.Context, client *PageWrapper) ( err error, )
Destroy CdpWrapper instance.
func (*RunnerCdpWrapperFactory) Make ¶
func (factory *RunnerCdpWrapperFactory) Make(ctx context.Context) (*PageWrapper, error)
Make CDP wrapper instance.
func (*RunnerCdpWrapperFactory) Type ¶
func (*RunnerCdpWrapperFactory) Type() string
Type of factory.
type RunnerConfig ¶
RunnerConfig have command and additions args for run browser.
func DefaultRunnerConfig ¶ added in v0.9.0
func DefaultRunnerConfig() RunnerConfig
DefaultRunnerConfig default RunnerConfig.
func (*RunnerConfig) BindFlags ¶ added in v0.9.0
func (config *RunnerConfig) BindFlags() []cli.Flag
BindFlags bind RunnerConfig to cli flags.
type TracedPage ¶
type TracedPage struct {
// contains filtered or unexported fields
}
TracedPage wrap cdp.Page with tracing.
func TracePage ¶
func TracePage(cdpPage cdp.Page, conn *rpcc.Conn, tracerProvider trace.TracerProvider) *TracedPage
TracePage wrap cdp.Page.
func (*TracedPage) Disable ¶
func (tracedPage *TracedPage) Disable(ctx context.Context) error
Disable wraps cdp.Page.Disable with span.
func (*TracedPage) Enable ¶
func (tracedPage *TracedPage) Enable(ctx context.Context) error
Enable wraps cdp.Page.Enable with span.
func (*TracedPage) GetNavigationHistory ¶ added in v0.11.1
func (tracedPage *TracedPage) GetNavigationHistory( ctx context.Context, ) (*page.GetNavigationHistoryReply, error)
GetNavigationHistory wraps cdp.Page.GetNavigationHistory with span.
func (*TracedPage) LifecycleEvent ¶
func (tracedPage *TracedPage) LifecycleEvent( ctx context.Context, ) (page.LifecycleEventClient, error)
LifecycleEvent wraps cdp.Page.LifecycleEvent with span.
func (*TracedPage) Navigate ¶
func (tracedPage *TracedPage) Navigate( ctx context.Context, args *page.NavigateArgs, ) (*page.NavigateReply, error)
Navigate wraps cdp.Page.Navigate with span.
func (*TracedPage) PrintToPDF ¶
func (tracedPage *TracedPage) PrintToPDF( ctx context.Context, args *page.PrintToPDFArgs, ) (*page.PrintToPDFReply, error)
PrintToPDF wraps cdp.Page.PrintToPDF with span.
func (*TracedPage) Reload ¶
func (tracedPage *TracedPage) Reload(ctx context.Context, args *page.ReloadArgs) error
Reload wraps cdp.Page.Reload with span.
func (*TracedPage) SetLifecycleEventsEnabled ¶
func (tracedPage *TracedPage) SetLifecycleEventsEnabled( ctx context.Context, args *page.SetLifecycleEventsEnabledArgs, ) error
SetLifecycleEventsEnabled wraps cdp.Page.SetLifecycleEventsEnabled with span.
type TypedFactory ¶
type TypedFactory interface { pool.PooledObjectFactory Type() string }
TypedFactory wrap pool.PooledObjectFactory and provide Type() method.
type UnexpectedFactoryTypeError ¶
type UnexpectedFactoryTypeError struct {
// contains filtered or unexported fields
}
UnexpectedFactoryTypeError returns by (*FactoryType).Set when value is unexpected.
func NewUnexpectedFactoryTypeError ¶
func NewUnexpectedFactoryTypeError(value string) *UnexpectedFactoryTypeError
NewUnexpectedFactoryTypeError constructor.
func (*UnexpectedFactoryTypeError) Error ¶
func (err *UnexpectedFactoryTypeError) Error() string