Class: Puppeteer::BrowserContext
- Inherits:
-
Object
- Object
- Puppeteer::BrowserContext
show all
- Includes:
- EventCallbackable
- Defined in:
- lib/puppeteer/browser_context.rb
Constant Summary
collapse
- WEB_PERMISSION_TO_PROTOCOL =
{
'geolocation' => 'geolocation',
'midi' => 'midi',
'notifications' => 'notifications',
'camera' => 'videoCapture',
'microphone' => 'audioCapture',
'background-sync' => 'backgroundSync',
'ambient-light-sensor' => 'sensors',
'accelerometer' => 'sensors',
'gyroscope' => 'sensors',
'magnetometer' => 'sensors',
'accessibility-events' => 'accessibilityEvents',
'clipboard-read' => 'clipboardReadWrite',
'clipboard-write' => 'clipboardReadWrite',
'payment-handler' => 'paymentHandler',
'persistent-storage' => 'durableStorage',
'idle-detection' => 'idleDetection',
'midi-sysex' => 'midiSysex',
}.freeze
Instance Attribute Summary collapse
Instance Method Summary
collapse
#add_event_listener, #emit_event, #observe_first, #on_event, #remove_event_listener
Constructor Details
#initialize(connection, browser, context_id) ⇒ BrowserContext
Returns a new instance of BrowserContext.
8
9
10
11
12
|
# File 'lib/puppeteer/browser_context.rb', line 8
def initialize(connection, browser, context_id)
@connection = connection
@browser = browser
@id = context_id
end
|
Instance Attribute Details
#id ⇒ Object
Returns the value of attribute id.
14
15
16
|
# File 'lib/puppeteer/browser_context.rb', line 14
def id
@id
end
|
Instance Method Details
#async_wait_for_target(predicate: , timeout: nil) ⇒ Object
51
|
# File 'lib/puppeteer/browser_context.rb', line 51
define_async_method :async_wait_for_target
|
114
115
116
|
# File 'lib/puppeteer/browser_context.rb', line 114
def browser
@browser
end
|
#clear_permission_overrides ⇒ Object
100
101
102
103
104
105
106
|
# File 'lib/puppeteer/browser_context.rb', line 100
def clear_permission_overrides
if @id
@connection.send_message('Browser.resetPermissions', browserContextId: @id)
else
@connection.send_message('Browser.resetPermissions')
end
end
|
#close ⇒ Object
118
119
120
121
122
123
|
# File 'lib/puppeteer/browser_context.rb', line 118
def close
unless @id
raise 'Non-incognito profiles cannot be closed!'
end
@browser.dispose_context(@id)
end
|
#incognito? ⇒ Boolean
60
61
62
|
# File 'lib/puppeteer/browser_context.rb', line 60
def incognito?
!!@id
end
|
109
110
111
|
# File 'lib/puppeteer/browser_context.rb', line 109
def new_page
@browser.create_page_in_context(@id)
end
|
#on(event_name, &block) ⇒ Object
17
18
19
20
21
22
23
|
# File 'lib/puppeteer/browser_context.rb', line 17
def on(event_name, &block)
unless BrowserContextEmittedEvents.values.include?(event_name.to_s)
raise ArgumentError.new("Unknown event name: #{event_name}. Known events are #{BrowserContextEmittedEvents.values.to_a.join(", ")}")
end
super(event_name.to_s, &block)
end
|
#once(event_name, &block) ⇒ Object
26
27
28
29
30
31
32
|
# File 'lib/puppeteer/browser_context.rb', line 26
def once(event_name, &block)
unless BrowserContextEmittedEvents.values.include?(event_name.to_s)
raise ArgumentError.new("Unknown event name: #{event_name}. Known events are #{BrowserContextEmittedEvents.values.to_a.join(", ")}")
end
super(event_name.to_s, &block)
end
|
#override_permissions(origin, permissions) ⇒ Object
89
90
91
92
93
94
95
96
97
98
|
# File 'lib/puppeteer/browser_context.rb', line 89
def override_permissions(origin, permissions)
protocol_permissions = permissions.map do |permission|
WEB_PERMISSION_TO_PROTOCOL[permission] or raise ArgumentError.new("Unknown permission: #{permission}")
end
@connection.send_message('Browser.grantPermissions', {
origin: origin,
browserContextId: @id,
permissions: protocol_permissions,
}.compact)
end
|
#pages ⇒ !Promise<!Array<!Puppeteer.Page>>
54
55
56
57
58
|
# File 'lib/puppeteer/browser_context.rb', line 54
def pages
targets.select { |target|
target.type == 'page' || (target.type == 'other' && @browser.is_page_target_callback&.call(target.target_info))
}.map(&:page).reject { |page| !page }
end
|
#targets ⇒ !Array<!Target>
35
36
37
|
# File 'lib/puppeteer/browser_context.rb', line 35
def targets
@browser.targets.select { |target| target.browser_context == self }
end
|
#wait_for_target(predicate:, timeout: nil) ⇒ Puppeteer::Target
41
42
43
44
45
46
|
# File 'lib/puppeteer/browser_context.rb', line 41
def wait_for_target(predicate:, timeout: nil)
@browser.wait_for_target(
predicate: ->(target) { target.browser_context == self && predicate.call(target) },
timeout: timeout,
)
end
|