Class: Puppeteer::Target

Inherits:
Object
  • 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:, session:, browser_context:, target_manager:, session_factory:, ignore_https_errors:, default_viewport:, is_page_target_callback:) ⇒ 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
46
47
48
49
50
51
52
53
54
# File 'lib/puppeteer/target.rb', line 21

def initialize(target_info:,
               session:,
               browser_context:,
               target_manager:,
               session_factory:,
               ignore_https_errors:,
               default_viewport:,
               is_page_target_callback:)
  @session = session
  @target_manager = target_manager
  @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
  @is_page_target_callback = is_page_target_callback

  #    /** @type {?Promise<!Puppeteer.Page>} */
  #    this._pagePromise = null;
  #    /** @type {?Promise<!Worker>} */
  #    this._workerPromise = null;
  @initialize_callback_promise = resolvable_future
  @initialized_promise = @initialize_callback_promise.then do |success|
    handle_initialized(success)
  end
  @is_closed_promise = resolvable_future

  @is_initialized = !@is_page_target_callback.call(@target_info) || !@target_info.url.empty?

  if @is_initialized
    @initialize_callback_promise.fulfill(true)
  end
end

Instance Attribute Details

#initialized_promiseObject (readonly)

Returns the value of attribute initialized_promise.



56
57
58
# File 'lib/puppeteer/target.rb', line 56

def initialized_promise
  @initialized_promise
end

#is_closed_promiseObject (readonly)

Returns the value of attribute is_closed_promise.



56
57
58
# File 'lib/puppeteer/target.rb', line 56

def is_closed_promise
  @is_closed_promise
end

#target_idObject (readonly)

Returns the value of attribute target_id.



56
57
58
# File 'lib/puppeteer/target.rb', line 56

def target_id
  @target_id
end

#target_infoObject (readonly)

Returns the value of attribute target_info.



56
57
58
# File 'lib/puppeteer/target.rb', line 56

def target_info
  @target_info
end

Instance Method Details

#browser!Puppeteer.Browser



146
147
148
# File 'lib/puppeteer/target.rb', line 146

def browser
  @browser_context.browser
end

#browser_context!Puppeteer.BrowserContext



151
152
153
# File 'lib/puppeteer/target.rb', line 151

def browser_context
  @browser_context
end

#closed_callbackObject



58
59
60
# File 'lib/puppeteer/target.rb', line 58

def closed_callback
  @is_closed_promise.fulfill(true)
end

#create_cdp_sessionObject



95
96
97
# File 'lib/puppeteer/target.rb', line 95

def create_cdp_session
  @session_factory.call(false)
end

#handle_target_info_changed(target_info) ⇒ Object



163
164
165
166
167
168
169
170
# File 'lib/puppeteer/target.rb', line 163

def handle_target_info_changed(target_info)
  @target_info = target_info

  if !@is_initialized && (!@is_page_target_callback.call(@target_info) || !@target_info.url.empty?)
    @is_initialized = true
    @initialize_callback_promise.fulfill(true)
  end
end

#ignore_initialize_callback_promiseObject



64
65
66
67
68
# File 'lib/puppeteer/target.rb', line 64

def ignore_initialize_callback_promise
  unless @initialize_callback_promise.fulfilled?
    @initialize_callback_promise.fulfill(false)
  end
end

#initialized?Boolean



86
87
88
# File 'lib/puppeteer/target.rb', line 86

def initialized?
  @is_initialized
end

#opener?Puppeteer.Target



156
157
158
159
160
# File 'lib/puppeteer/target.rb', line 156

def opener
  opener_id = @target_info.opener_id
  return nil if opener_id.nil?
  browser.send(:find_target_by_id, opener_id)
end

#pageObject



103
104
105
106
107
108
109
# File 'lib/puppeteer/target.rb', line 103

def page
  if @is_page_target_callback.call(@target_info) && @page.nil?
    client = @session || @session_factory.call(true)
    @page = Puppeteer::Page.create(client, self, @ignore_https_errors, @default_viewport)
  end
  @page
end

#raw_typeObject



141
142
143
# File 'lib/puppeteer/target.rb', line 141

def raw_type
  @target_info.type
end

#sessionCDPSession|nil



91
92
93
# File 'lib/puppeteer/target.rb', line 91

def session
  @session
end

#target_managerObject



99
100
101
# File 'lib/puppeteer/target.rb', line 99

def target_manager
  @target_manager
end

#type"page"|"background_page"|"service_worker"|"shared_worker"|"other"|"browser"



131
132
133
134
135
136
137
138
# File 'lib/puppeteer/target.rb', line 131

def type
  type = @target_info.type
  if ['page', 'background_page', 'service_worker', 'shared_worker', 'browser'].include?(type)
    type
  else
    'other'
  end
end

#urlstring



126
127
128
# File 'lib/puppeteer/target.rb', line 126

def url
  @target_info.url
end