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
45
46
47
|
# 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
@initialize_callback_promise = resolvable_future
@initialized_promise = @initialize_callback_promise.then do |success|
handle_initialized(success)
end
@is_closed_promise = resolvable_future
@is_initialized = @target_info.type != 'page' || !@target_info.url.empty?
if @is_initialized
@initialize_callback_promise.fulfill(true)
end
end
|
Instance Attribute Details
#initialized_promise ⇒ Object
Returns the value of attribute initialized_promise.
49
50
51
|
# File 'lib/puppeteer/target.rb', line 49
def initialized_promise
@initialized_promise
end
|
#is_closed_promise ⇒ Object
Returns the value of attribute is_closed_promise.
49
50
51
|
# File 'lib/puppeteer/target.rb', line 49
def is_closed_promise
@is_closed_promise
end
|
#target_id ⇒ Object
Returns the value of attribute target_id.
49
50
51
|
# File 'lib/puppeteer/target.rb', line 49
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
|
#closed_callback ⇒ Object
51
52
53
|
# File 'lib/puppeteer/target.rb', line 51
def closed_callback
@is_closed_promise.fulfill(true)
end
|
#create_cdp_session ⇒ Object
83
84
85
|
# File 'lib/puppeteer/target.rb', line 83
def create_cdp_session
@session_factory.call
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
@initialize_callback_promise.fulfill(true)
end
end
|
#ignore_initialize_callback_promise ⇒ Object
57
58
59
60
61
|
# File 'lib/puppeteer/target.rb', line 57
def ignore_initialize_callback_promise
unless @initialize_callback_promise.fulfilled?
@initialize_callback_promise.fulfill(false)
end
end
|
#initialized? ⇒ Boolean
79
80
81
|
# File 'lib/puppeteer/target.rb', line 79
def initialized?
@is_initialized
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.send(:find_target_by_id, 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', 'webview'].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
|