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:) ⇒ Target
Returns a new instance of Target.
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
|
# File 'lib/puppeteer/target.rb', line 21
def initialize(target_info:, browser_context:, session_factory:, ignore_https_errors:, default_viewport:)
@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
@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.
47
48
49
|
# File 'lib/puppeteer/target.rb', line 47
def initialized_promise
@initialized_promise
end
|
#is_closed_promise ⇒ Object
Returns the value of attribute is_closed_promise.
47
48
49
|
# File 'lib/puppeteer/target.rb', line 47
def is_closed_promise
@is_closed_promise
end
|
#target_id ⇒ Object
Returns the value of attribute target_id.
47
48
49
|
# File 'lib/puppeteer/target.rb', line 47
def target_id
@target_id
end
|
Instance Method Details
123
124
125
|
# File 'lib/puppeteer/target.rb', line 123
def browser
@browser_context.browser
end
|
128
129
130
|
# File 'lib/puppeteer/target.rb', line 128
def browser_context
@browser_context
end
|
#closed_callback ⇒ Object
49
50
51
|
# File 'lib/puppeteer/target.rb', line 49
def closed_callback
@is_closed_promise.fulfill(true)
end
|
#create_cdp_session ⇒ Object
81
82
83
|
# File 'lib/puppeteer/target.rb', line 81
def create_cdp_session
@session_factory.call
end
|
#handle_target_info_changed(target_info) ⇒ Object
140
141
142
143
144
145
146
147
|
# File 'lib/puppeteer/target.rb', line 140
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
55
56
57
58
59
|
# File 'lib/puppeteer/target.rb', line 55
def ignore_initialize_callback_promise
unless @initialize_callback_promise.fulfilled?
@initialize_callback_promise.fulfill(false)
end
end
|
#initialized? ⇒ Boolean
77
78
79
|
# File 'lib/puppeteer/target.rb', line 77
def initialized?
@is_initialized
end
|
133
134
135
136
137
|
# File 'lib/puppeteer/target.rb', line 133
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
85
86
87
88
89
90
91
|
# File 'lib/puppeteer/target.rb', line 85
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)
end
@page
end
|
#type ⇒ "page"|"background_page"|"service_worker"|"shared_worker"|"other"|"browser"
113
114
115
116
117
118
119
120
|
# File 'lib/puppeteer/target.rb', line 113
def type
type = @target_info.type
if ['page', 'background_page', 'service_worker', 'shared_worker', 'browser'].include?(type)
type
else
'other'
end
end
|
#url ⇒ string
108
109
110
|
# File 'lib/puppeteer/target.rb', line 108
def url
@target_info.url
end
|