Skip to content

Commit

Permalink
[rb] remove unnecessary code from Firefox::Profile class
Browse files Browse the repository at this point in the history
  • Loading branch information
titusfortner committed Jul 17, 2019
1 parent 2fd646c commit e7b4b76
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 108 deletions.
3 changes: 0 additions & 3 deletions rb/build.desc
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,6 @@ ruby_library(name = "firefox",
"lib/selenium/webdriver/firefox/**/*.rb",
"lib/selenium/webdriver/firefox.rb"
],
resources = [
{ "//third_party/js/selenium:webdriver_prefs" : "rb/lib/selenium/webdriver/firefox/extension/prefs.json" }
],
deps = [":common"]
)

Expand Down
81 changes: 4 additions & 77 deletions rb/lib/selenium/webdriver/firefox/profile.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,10 @@ module Firefox
class Profile
include ProfileHelper

VALID_PREFERENCE_TYPES = [TrueClass, FalseClass, Integer, Float, String].freeze
WEBDRIVER_EXTENSION_PATH = File.expand_path("#{WebDriver.root}/selenium/webdriver/firefox/extension/webdriver.xpi")
WEBDRIVER_PREFS = {
native_events: 'webdriver_enable_native_events',
untrusted_certs: 'webdriver_accept_untrusted_certs',
untrusted_issuer: 'webdriver_assume_untrusted_issuer',
port: 'webdriver_firefox_port',
log_file: 'webdriver.log.file'
}.freeze
VALID_PREFERENCE_TYPES = [TrueClass, FalseClass, Integer, Float, String].freeze

attr_reader :name, :log_file
attr_writer :secure_ssl, :native_events, :load_no_focus_lib
attr_writer :secure_ssl, :load_no_focus_lib

class << self
def ini
Expand All @@ -48,12 +40,6 @@ def from_name(name)
raise Error::WebDriverError, "unable to find profile named: #{name.inspect}"
end

def default_preferences
@default_preferences ||= JSON.parse(
File.read(File.expand_path("#{WebDriver.root}/selenium/webdriver/firefox/extension/prefs.json"))
).freeze
end

def decoded(json)
JSON.parse(json)
end
Expand All @@ -74,14 +60,7 @@ def decoded(json)
def initialize(model = nil)
@model = verify_model(model)

model_prefs = read_model_prefs

if model_prefs.empty?
assign_default_preferences
else
assign_updated_preferences(model_prefs)
end

@additional_prefs = read_model_prefs
@extensions = {}
end

Expand Down Expand Up @@ -125,12 +104,6 @@ def log_file=(file)
self[WEBDRIVER_PREFS[:log_file]] = file
end

def add_webdriver_extension
return if @extensions.key?(:webdriver)

add_extension(WEBDRIVER_EXTENSION_PATH, :webdriver)
end

#
# Add the extension (directory, .zip or .xpi) at the given path to the profile.
#
Expand All @@ -139,26 +112,6 @@ def add_extension(path, name = extension_name_for(path))
@extensions[name] = Extension.new(path)
end

def native_events?
@native_events == true
end

def load_no_focus_lib?
@load_no_focus_lib == true
end

def secure_ssl?
@secure_ssl == true
end

def assume_untrusted_certificate_issuer?
@untrusted_issuer == true
end

def assume_untrusted_certificate_issuer=(bool)
@untrusted_issuer = bool
end

def proxy=(proxy)
raise TypeError, "expected #{Proxy.name}, got #{proxy.inspect}:#{proxy.class}" unless proxy.is_a? Proxy

Expand Down Expand Up @@ -186,24 +139,6 @@ def proxy=(proxy)

private

def assign_default_preferences
@native_events = DEFAULT_ENABLE_NATIVE_EVENTS
@secure_ssl = DEFAULT_SECURE_SSL
@untrusted_issuer = DEFAULT_ASSUME_UNTRUSTED_ISSUER
@load_no_focus_lib = DEFAULT_LOAD_NO_FOCUS_LIB

@additional_prefs = {}
end

def assign_updated_preferences(model_prefs)
@native_events = model_prefs.delete(WEBDRIVER_PREFS[:native_events]) == 'true'
@secure_ssl = model_prefs.delete(WEBDRIVER_PREFS[:untrusted_certs]) != 'true'
@untrusted_issuer = model_prefs.delete(WEBDRIVER_PREFS[:untrusted_issuer]) == 'true'
# not stored in profile atm, so will always be false.
@load_no_focus_lib = model_prefs.delete(WEBDRIVER_PREFS[:load_no_focus_lib]) == 'true'
@additional_prefs = model_prefs
end

def set_manual_proxy_preference(key, value)
return unless value

Expand Down Expand Up @@ -244,15 +179,7 @@ def extension_name_for(path)

def update_user_prefs_in(directory)
path = File.join(directory, 'user.js')
prefs = read_user_prefs(path)

prefs.merge! self.class.default_preferences.fetch 'mutable'
prefs.merge! @additional_prefs
prefs.merge! self.class.default_preferences.fetch 'frozen'

prefs[WEBDRIVER_PREFS[:untrusted_certs]] = !secure_ssl?
prefs[WEBDRIVER_PREFS[:native_events]] = native_events?
prefs[WEBDRIVER_PREFS[:untrusted_issuer]] = assume_untrusted_certificate_issuer?
prefs = read_user_prefs(path).merge(@additional_prefs)

# If the user sets the home page, we should also start up there
prefs['startup.homepage_welcome_url'] = prefs['browser.startup.homepage']
Expand Down
28 changes: 0 additions & 28 deletions rb/spec/integration/selenium/webdriver/firefox/profile_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,6 @@ def read_generated_prefs(from = nil)
expect(string).to include('user_pref("foo.boolean", true)')
end

it 'should not let user override defaults' do
profile['app.update.enabled'] = true

string = read_generated_prefs
expect(string).to include('user_pref("app.update.enabled", false)')
end

it 'should properly handle escaped characters' do
profile['foo'] = 'C:\\r\\n'

Expand All @@ -80,27 +73,6 @@ def read_generated_prefs(from = nil)
expect { profile['foo.bar'] = '"stringified"' }.to raise_error(ArgumentError)
end

it 'should enable secure SSL' do
profile.secure_ssl = true

string = read_generated_prefs
expect(string).to include('user_pref("webdriver_accept_untrusted_certs", false)')
end

it 'should disable secure SSL' do
profile.secure_ssl = false

string = read_generated_prefs
expect(string).to include('user_pref("webdriver_accept_untrusted_certs", true)')
end

it 'should change the setting for untrusted certificate issuer' do
profile.assume_untrusted_certificate_issuer = false

string = read_generated_prefs
expect(string).to include('user_pref("webdriver_assume_untrusted_issuer", false)')
end

it 'can configure a manual proxy' do
proxy = Proxy.new(
http: 'foo:123',
Expand Down

0 comments on commit e7b4b76

Please sign in to comment.