Class: Puppeteer::Extension

Inherits:
Object
  • Object
show all
Defined in:
lib/puppeteer/extension.rb,
sig/puppeteer/extension.rbs

Overview

rbs_inline: enabled

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id:, version:, name:, path:, enabled:, browser:) ⇒ Extension

Returns a new instance of Extension.

Parameters:

  • id: (String)
  • version: (String)
  • name: (String)
  • path: (String)
  • enabled: (Boolean)
  • browser: (Puppeteer::Browser)


11
12
13
14
15
16
17
18
# File 'lib/puppeteer/extension.rb', line 11

def initialize(id:, version:, name:, path:, enabled:, browser:)
  @id = id
  @version = version
  @name = name
  @path = path
  @enabled = enabled
  @browser = browser
end

Instance Attribute Details

#enabledObject (readonly)

Returns the value of attribute enabled.

Returns:

  • (Object)


33
34
35
# File 'lib/puppeteer/extension.rb', line 33

def enabled
  @enabled
end

#idObject (readonly)

Returns the value of attribute id.

Returns:

  • (Object)


21
22
23
# File 'lib/puppeteer/extension.rb', line 21

def id
  @id
end

#nameObject (readonly)

Returns the value of attribute name.

Returns:

  • (Object)


27
28
29
# File 'lib/puppeteer/extension.rb', line 27

def name
  @name
end

#pathObject (readonly)

Returns the value of attribute path.

Returns:

  • (Object)


30
31
32
# File 'lib/puppeteer/extension.rb', line 30

def path
  @path
end

#versionObject (readonly)

Returns the value of attribute version.

Returns:

  • (Object)


24
25
26
# File 'lib/puppeteer/extension.rb', line 24

def version
  @version
end

Instance Method Details

#pagesArray[Puppeteer::Page]

Returns:



54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/puppeteer/extension.rb', line 54

def pages
  extension_prefix = "chrome-extension://#{@id}"
  extension_targets = @browser.targets.select do |target|
    target_url = target.url
    ['page', 'background_page'].include?(target.type) && target_url.start_with?(extension_prefix)
  end
  extension_targets.filter_map do |target|
    target.as_page
  rescue => error
    raise unless can_ignore_error?(error)

    nil
  end
end

#trigger_action(page) ⇒ void

This method returns an undefined value.

Parameters:



78
79
80
81
82
83
# File 'lib/puppeteer/extension.rb', line 78

def trigger_action(page)
  @browser.send(:connection).send_message('Extensions.triggerAction', {
    id: @id,
    targetId: page._tab_id,
  })
end

#workersArray[Puppeteer::CdpWebWorker]

Returns:



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/puppeteer/extension.rb', line 36

def workers
  extension_prefix = "chrome-extension://#{@id}"
  extension_targets = @browser.targets.select do |target|
    target.type == 'service_worker' && target.url.start_with?(extension_prefix)
  end
  tasks = extension_targets.map do |target|
    proc do
      target.worker
    rescue => error
      raise unless can_ignore_error?(error)

      nil
    end
  end
  Puppeteer::AsyncUtils.await_promise_all(*tasks).compact
end