Class: Puppeteer::Target
- Inherits:
-
Object
show all
- Defined in:
- lib/puppeteer/target.rb
Overview
Defined Under Namespace
Classes: InitializeFailure, TargetInfo
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(target_info:, browser_context:, session_factory:, ignore_https_errors:, default_viewport:, screenshot_task_queue:) ⇒ Target
Returns a new instance of Target.
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/puppeteer/target.rb', line 22
def initialize(target_info:, browser_context:, session_factory:, ignore_https_errors:, default_viewport:, screenshot_task_queue:)
@target_info = target_info
@browser_context = browser_context
@target_id = target_info.target_id
@session_factory = session_factory
@ignore_https_errors = ignore_https_errors
@default_viewport = default_viewport
@screenshot_task_queue = screenshot_task_queue
@initialized_promise = resolvable_future
@is_initialized = @target_info.type != 'page' || !@target_info.url.empty?
if @is_initialized
handle_initialized(true)
end
end
|
Instance Attribute Details
#initialized_promise ⇒ Object
Returns the value of attribute initialized_promise.
46
47
48
|
# File 'lib/puppeteer/target.rb', line 46
def initialized_promise
@initialized_promise
end
|
#target_id ⇒ Object
Returns the value of attribute target_id.
46
47
48
|
# File 'lib/puppeteer/target.rb', line 46
def target_id
@target_id
end
|
Instance Method Details
125
126
127
|
# File 'lib/puppeteer/target.rb', line 125
def browser
@browser_context.browser
end
|
130
131
132
|
# File 'lib/puppeteer/target.rb', line 130
def browser_context
@browser_context
end
|
#create_cdp_session ⇒ Object
83
84
85
|
# File 'lib/puppeteer/target.rb', line 83
def create_cdp_session
@session_factory.call
end
|
#handle_closed ⇒ Object
70
71
72
73
|
# File 'lib/puppeteer/target.rb', line 70
def handle_closed
@closed = true
@on_close&.call
end
|
#handle_initialized(success) ⇒ Object
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/puppeteer/target.rb', line 50
def handle_initialized(success)
unless success
@initialized_promise.reject(InitializeFailure.new('Failed to create target for page'))
end
@on_initialize_succeeded&.call
@initialized_promise.fulfill(true)
opener_page = opener&.page
if opener_page.nil? || type != 'page'
return
end
= page
opener_page.emit_event('Events.Page.Popup', )
end
|
#handle_target_info_changed(target_info) ⇒ Object
142
143
144
145
146
147
148
149
|
# File 'lib/puppeteer/target.rb', line 142
def handle_target_info_changed(target_info)
@target_info = target_info
if !@is_initialized && (@target_info.type != 'page' || !target_info.url.empty?)
@is_initialized = true
handle_initialized(true)
end
end
|
#initialized? ⇒ Boolean
79
80
81
|
# File 'lib/puppeteer/target.rb', line 79
def initialized?
@is_initialized
end
|
#on_close(&block) ⇒ Object
75
76
77
|
# File 'lib/puppeteer/target.rb', line 75
def on_close(&block)
@on_close = block
end
|
#on_initialize_succeeded(&block) ⇒ Object
66
67
68
|
# File 'lib/puppeteer/target.rb', line 66
def on_initialize_succeeded(&block)
@on_initialize_succeeded = block
end
|
135
136
137
138
139
|
# File 'lib/puppeteer/target.rb', line 135
def opener
opener_id = @target_info.opener_id
return nil if opener_id.nil?
browser.targets[opener_id]
end
|
#page ⇒ Object
87
88
89
90
91
92
93
|
# File 'lib/puppeteer/target.rb', line 87
def page
if ['page', 'background_page'].include?(@target_info.type) && @page.nil?
client = @session_factory.call
@page = Puppeteer::Page.create(client, self, @ignore_https_errors, @default_viewport, @screenshot_task_queue)
end
@page
end
|
#type ⇒ "page"|"background_page"|"service_worker"|"shared_worker"|"other"|"browser"
115
116
117
118
119
120
121
122
|
# File 'lib/puppeteer/target.rb', line 115
def type
type = @target_info.type
if ['page', 'background_page', 'service_worker', 'shared_worker', 'browser'].include?(type)
type
else
'other'
end
end
|
#url ⇒ string
110
111
112
|
# File 'lib/puppeteer/target.rb', line 110
def url
@target_info.url
end
|