Class: Selenium::WebDriver::Firefox::Profile
- Inherits:
-
Object
- Object
- Selenium::WebDriver::Firefox::Profile
show all
- Includes:
- ProfileHelper
- Defined in:
- lib/selenium/webdriver/firefox/profile.rb
Constant Summary
collapse
- VALID_PREFERENCE_TYPES =
[TrueClass, FalseClass, Integer, Float, String].freeze
- WEBDRIVER_PREFS =
{
port: 'webdriver_firefox_port',
log_file: 'webdriver.log.file'
}.freeze
- DEFAULT_PREFERENCES =
{
'browser.newtabpage.enabled' => false,
'browser.startup.homepage' => 'about:blank',
'browser.usedOnWindows10.introURL' => 'about:blank',
'network.captive-portal-service.enabled' => false,
'security.csp.enable' => false
}.freeze
- LOCK_FILES =
%w[.parentlock parent.lock lock].freeze
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#encoded, included, #to_json
Constructor Details
#initialize(model = nil) ⇒ Profile
Create a new Profile instance
73
74
75
76
77
78
|
# File 'lib/selenium/webdriver/firefox/profile.rb', line 73
def initialize(model = nil)
@model = verify_model(model)
@additional_prefs = read_model_prefs
@extensions = {}
end
|
Instance Attribute Details
#log_file ⇒ Object
Returns the value of attribute log_file.
42
43
44
|
# File 'lib/selenium/webdriver/firefox/profile.rb', line 42
def log_file
@log_file
end
|
#name ⇒ Object
Returns the value of attribute name.
42
43
44
|
# File 'lib/selenium/webdriver/firefox/profile.rb', line 42
def name
@name
end
|
Class Method Details
.decoded(json) ⇒ Object
56
57
58
|
# File 'lib/selenium/webdriver/firefox/profile.rb', line 56
def decoded(json)
JSON.parse(json)
end
|
.from_name(name) ⇒ Object
49
50
51
52
53
54
|
# File 'lib/selenium/webdriver/firefox/profile.rb', line 49
def from_name(name)
profile = ini[name]
return profile if profile
raise Error::WebDriverError, "unable to find profile named: #{name.inspect}"
end
|
.ini ⇒ Object
45
46
47
|
# File 'lib/selenium/webdriver/firefox/profile.rb', line 45
def ini
@ini ||= ProfilesIni.new
end
|
Instance Method Details
#[]=(key, value) ⇒ Object
Set a preference for this particular profile.
99
100
101
102
103
104
105
106
107
108
109
|
# File 'lib/selenium/webdriver/firefox/profile.rb', line 99
def []=(key, value)
unless VALID_PREFERENCE_TYPES.any? { |e| value.is_a? e }
raise TypeError, "expected one of #{VALID_PREFERENCE_TYPES.inspect}, got #{value.inspect}:#{value.class}"
end
if value.is_a?(String) && Util.stringified?(value)
raise ArgumentError, "preference values must be plain strings: #{key.inspect} => #{value.inspect}"
end
@additional_prefs[key.to_s] = value
end
|
#add_extension(path, name = extension_name_for(path)) ⇒ Object
131
132
133
134
135
|
# File 'lib/selenium/webdriver/firefox/profile.rb', line 131
def add_extension(path, name = extension_name_for(path))
WebDriver.logger.deprecate('Firefox::Profile#add_extension', 'Driver#install_addon',
id: :firefox_profile)
@extensions[name] = Extension.new(path)
end
|
#layout_on_disk ⇒ Object
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/selenium/webdriver/firefox/profile.rb', line 80
def layout_on_disk
profile_dir = @model ? create_tmp_copy(@model) : Dir.mktmpdir('webdriver-profile')
FileReaper << profile_dir
install_extensions(profile_dir)
delete_lock_files(profile_dir)
delete_extensions_cache(profile_dir)
update_user_prefs_in(profile_dir)
profile_dir
end
|
#load_no_focus_lib=(value) ⇒ Object
121
122
123
124
|
# File 'lib/selenium/webdriver/firefox/profile.rb', line 121
def load_no_focus_lib=(value)
WebDriver.logger.deprecate('Firefox::Profile#load_no_focus_lib=', id: :firefox_profile)
@load_no_focus_lib = value
end
|
#port=(port) ⇒ Object
111
112
113
114
|
# File 'lib/selenium/webdriver/firefox/profile.rb', line 111
def port=(port)
WebDriver.logger.deprecate('Firefox::Profile#port=', 'the Service class', id: :firefox_profile)
self[WEBDRIVER_PREFS[:port]] = port
end
|
#proxy=(proxy) ⇒ Object
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
# File 'lib/selenium/webdriver/firefox/profile.rb', line 137
def proxy=(proxy)
raise TypeError, "expected #{Proxy.name}, got #{proxy.inspect}:#{proxy.class}" unless proxy.is_a? Proxy
case proxy.type
when :manual
self['network.proxy.type'] = 1
set_manual_proxy_preference 'http', proxy.http
set_manual_proxy_preference 'ssl', proxy.ssl
set_manual_proxy_preference 'socks', proxy.socks
self['network.proxy.no_proxies_on'] = proxy.no_proxy || ''
when :pac
self['network.proxy.type'] = 2
self['network.proxy.autoconfig_url'] = proxy.pac
when :auto_detect
self['network.proxy.type'] = 4
else
raise ArgumentError, "unsupported proxy type #{proxy.type}"
end
end
|
#secure_ssl=(value) ⇒ Object
116
117
118
119
|
# File 'lib/selenium/webdriver/firefox/profile.rb', line 116
def secure_ssl=(value)
WebDriver.logger.deprecate('Firefox::Profile#secure_ssl=', id: :firefox_profile)
@secure_ssl = value
end
|