forked from Ecwid/control
-
Notifications
You must be signed in to change notification settings - Fork 0
/
emulation.go
61 lines (52 loc) · 1.94 KB
/
emulation.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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package control
import (
"github.com/ecwid/control/mobile"
"github.com/ecwid/control/protocol/common"
"github.com/ecwid/control/protocol/emulation"
)
type Emulation struct {
s *Session
}
// SetDeviceMetricsOverride ...
func (e Emulation) SetDeviceMetricsOverride(metrics emulation.SetDeviceMetricsOverrideArgs) error {
return emulation.SetDeviceMetricsOverride(e.s, metrics)
}
// SetUserAgentOverride ...
func (e Emulation) SetUserAgentOverride(userAgent, acceptLanguage, platform string, userAgentMetadata *common.UserAgentMetadata) error {
return emulation.SetUserAgentOverride(e.s, emulation.SetUserAgentOverrideArgs{
UserAgent: userAgent,
AcceptLanguage: acceptLanguage,
Platform: platform,
UserAgentMetadata: userAgentMetadata,
})
}
// ClearDeviceMetricsOverride ...
func (e Emulation) ClearDeviceMetricsOverride() error {
return emulation.ClearDeviceMetricsOverride(e.s)
}
// SetScrollbarsHidden ...
func (e Emulation) SetScrollbarsHidden(hidden bool) error {
return emulation.SetScrollbarsHidden(e.s, emulation.SetScrollbarsHiddenArgs{
Hidden: hidden,
})
}
// SetCPUThrottlingRate https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setCPUThrottlingRate
func (e Emulation) SetCPUThrottlingRate(rate float64) error {
return emulation.SetCPUThrottlingRate(e.s, emulation.SetCPUThrottlingRateArgs{
Rate: rate,
})
}
// SetDocumentCookieDisabled https://chromedevtools.github.io/devtools-protocol/tot/Emulation/#method-setDocumentCookieDisabled
func (e Emulation) SetDocumentCookieDisabled(disabled bool) error {
return emulation.SetDocumentCookieDisabled(e.s, emulation.SetDocumentCookieDisabledArgs{
Disabled: disabled,
})
}
// Emulate emulate predefined device
func (e Emulation) Emulate(device *mobile.Device) error {
device.Metrics.DontSetVisibleSize = true
if err := e.SetDeviceMetricsOverride(device.Metrics); err != nil {
return err
}
return e.SetUserAgentOverride(device.UserAgent, "", "", nil)
}