-
-
Notifications
You must be signed in to change notification settings - Fork 36
/
events.rb
184 lines (146 loc) · 6.75 KB
/
events.rb
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
require 'digest/md5'
module EventsDefinitionUtils
# symbol is used to prevent external parties listening to these events
module_function def symbol(str)
Digest::MD5.hexdigest(str)
end
refine Hash do
def define_const_into(target_module)
each do |key, value|
target_module.const_set(key, value)
target_module.define_singleton_method(key) { value }
end
keyset = Set.new(keys)
valueset = Set.new(values)
target_module.define_singleton_method(:keys) { keyset }
target_module.define_singleton_method(:values) { valueset }
end
end
end
using EventsDefinitionUtils
# Internal events that the Connection class emits.
module ConnectionEmittedEvents ; end
{
Disconnected: EventsDefinitionUtils.symbol('Connection.Disconnected'),
}.define_const_into(ConnectionEmittedEvents)
# Internal events that the CDPSession class emits.
module CDPSessionEmittedEvents ; end
{
Disconnected: EventsDefinitionUtils.symbol('CDPSession.Disconnected'),
}.define_const_into(CDPSessionEmittedEvents)
# All the events a Browser may emit.
module BrowserEmittedEvents ; end
{
# Emitted when Puppeteer gets disconnected from the Chromium instance. This might happen because of one of the following:
# - Chromium is closed or crashed
# - The Browser#disconnect method was called.
Disconnected: 'disconnected',
# Emitted when the url of a target changes. Contains a {@link Target} instance.
TargetChanged: 'targetchanged',
# Emitted when a target is created, for example when a new page is opened by
# window.open or by Browser#newPage
# Contains a Target instance.
TargetCreated: 'targetcreated',
# Emitted when a target is destroyed, for example when a page is closed.
# Contains a Target instance.
TargetDestroyed: 'targetdestroyed',
}.define_const_into(BrowserEmittedEvents)
module BrowserContextEmittedEvents ; end
{
# Emitted when the url of a target inside the browser context changes.
# Contains a Target instance.
TargetChanged: 'targetchanged',
# Emitted when a target is created, for example when a new page is opened by
# window.open or by BrowserContext#newPage
# Contains a Target instance.
TargetCreated: 'targetcreated',
# Emitted when a target is destroyed within the browser context, for example when a page is closed.
# Contains a Target instance.
TargetDestroyed: 'targetdestroyed',
}.define_const_into(BrowserContextEmittedEvents)
# We use symbols to prevent any external parties listening to these events.
# They are internal to Puppeteer.
module NetworkManagerEmittedEvents ; end
{
Request: EventsDefinitionUtils.symbol('NetworkManager.Request'),
RequestServedFromCache: EventsDefinitionUtils.symbol('NetworkManager.RequestServedFromCache'),
Response: EventsDefinitionUtils.symbol('NetworkManager.Response'),
RequestFailed: EventsDefinitionUtils.symbol('NetworkManager.RequestFailed'),
RequestFinished: EventsDefinitionUtils.symbol('NetworkManager.RequestFinished'),
}.define_const_into(NetworkManagerEmittedEvents)
# We use symbols to prevent external parties listening to these events.
# They are internal to Puppeteer.
module FrameManagerEmittedEvents ; end
{
FrameAttached: EventsDefinitionUtils.symbol('FrameManager.FrameAttached'),
FrameNavigated: EventsDefinitionUtils.symbol('FrameManager.FrameNavigated'),
FrameDetached: EventsDefinitionUtils.symbol('FrameManager.FrameDetached'),
FrameSwapped: EventsDefinitionUtils.symbol('FrameManager.FrameSwapped'),
LifecycleEvent: EventsDefinitionUtils.symbol('FrameManager.LifecycleEvent'),
FrameNavigatedWithinDocument: EventsDefinitionUtils.symbol('FrameManager.FrameNavigatedWithinDocument'),
ExecutionContextCreated: EventsDefinitionUtils.symbol('FrameManager.ExecutionContextCreated'),
ExecutionContextDestroyed: EventsDefinitionUtils.symbol('FrameManager.ExecutionContextDestroyed'),
}.define_const_into(FrameManagerEmittedEvents)
# All the events that a page instance may emit.
module PageEmittedEvents ; end
{
# Emitted when the page closes.
Close: 'close',
# Emitted when JavaScript within the page calls one of console API methods,
# e.g. `console.log` or `console.dir`. Also emitted if the page throws an
# error or a warning.
Console: 'console',
# Emitted when a JavaScript dialog appears, such as `alert`, `prompt`,
# `confirm` or `beforeunload`. Puppeteer can respond to the dialog via
# Dialog#accept or Dialog#dismiss.
Dialog: 'dialog',
# Emitted when the JavaScript
# {https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded DOMContentLoaded} event is dispatched.
DOMContentLoaded: 'domcontentloaded',
# Emitted when the page crashes. Will contain an `Error`.
Error: 'error',
# Emitted when a frame is attached. Will contain a Frame.
FrameAttached: 'frameattached',
# Emitted when a frame is detached. Will contain a Frame.
FrameDetached: 'framedetached',
# Emitted when a frame is navigated to a new URL. Will contain a {@link Frame}.
FrameNavigated: 'framenavigated',
# Emitted when the JavaScript
# {https://developer.mozilla.org/en-US/docs/Web/Events/load | load} event is dispatched.
Load: 'load',
# Emitted when the JavaScript code makes a call to `console.timeStamp`. For
# the list of metrics see {@link Page.metrics | page.metrics}.
#
# Contains an object with two properties:
# - `title`: the title passed to `console.timeStamp`
# - `metrics`: objec containing metrics as key/value pairs. The values will be `number`s.
Metrics: 'metrics',
# Emitted when an uncaught exception happens within the page.
# Contains an `Error`.
PageError: 'pageerror',
# Emitted when the page opens a new tab or window.
# Contains a Page corresponding to the popup window.
Popup: 'popup',
# Emitted when a page issues a request and contains a HTTPRequest.
#
# The object is readonly. See Page#setRequestInterception for intercepting and mutating requests.
Request: 'request',
# Emitted when a request fails, for example by timing out.
#
# Contains a HTTPRequest.
#
# NOTE: HTTP Error responses, such as 404 or 503, are still successful
# responses from HTTP standpoint, so request will complete with
# `requestfinished` event and not with `requestfailed`.
RequestFailed: 'requestfailed',
# Emitted when a request finishes successfully. Contains a HTTPRequest.
RequestFinished: 'requestfinished',
# Emitted when a response is received. Contains a HTTPResponse.
Response: 'response',
# Emitted when a dedicated
# {https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API WebWorker} is spawned by the page.
WorkerCreated: 'workercreated',
# Emitted when a dedicated
# {https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API WebWorker} is destroyed by the page.
WorkerDestroyed: 'workerdestroyed',
}.define_const_into(PageEmittedEvents)