selenium_tor 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 387e1f6800b7d9b1f7eb269a0e6d53f699123b59f3daa1b4ae66536037fdc3ff
4
- data.tar.gz: a59fa065eef2328abb0832ead2ada221172b5d4d55c34fe0285c02f6075e8d93
3
+ metadata.gz: 53381bfb6eec61ccbffdd84ce01dd3e83413822c139ef6877f1873505fdf9560
4
+ data.tar.gz: b0aaf6755f2139ab92f66941f6874a38a1ee0d5da6c4a4891968c2c22afb114f
5
5
  SHA512:
6
- metadata.gz: 6a5d2aa8ecf3527edadcec9aab17480dfdd0055525322b7c97f0c8f4e6588e392d0e5b10d4eca05c5a1766e22f87b6793109da8965a45ac6bc26216888be50de
7
- data.tar.gz: b145dab8c18821750a8be414af2cf44a8046a0393e69907c52dc14cc8dd4f376e626d10d77fe473655604d27810d93ea5539f5a316f78659a6a8abaaf6780f8c
6
+ metadata.gz: f5ce3f9a6def6cf03b4ddcb9eaa24548f70d87f7624d2c6b8deae473210f6a02e7239a80a4ba5ba9a925b8a33f9bb9e4adde8182d93fe90c17a8dd581de25351
7
+ data.tar.gz: c153ff3ea434a2a141f3f15670e923b0800159e1ee2126414b7fd498fbe937e155de652735255d9f4576735789ab9215f259c2983922627e0d68fbcad33825a7
data/.jshintrc ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "esversion": 6
3
+ }
data/.rubocop.yml CHANGED
@@ -6,10 +6,21 @@ require:
6
6
 
7
7
  AllCops:
8
8
  NewCops: enable
9
- TargetRubyVersion: 2.7
10
9
 
11
10
  Style/HashSyntax:
12
11
  Enabled: false # yuk Ruby 3.1
13
12
 
14
13
  Layout/LineLength:
15
14
  Max: 120
15
+
16
+ Security/Eval:
17
+ Exclude:
18
+ - 'test/test_readme.rb'
19
+
20
+ Lint/RescueException:
21
+ Exclude:
22
+ - 'test/test_readme.rb'
23
+
24
+ Style/RegexpLiteral:
25
+ Exclude:
26
+ - 'Guardfile'
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.3.0-preview3
1
+ 3.3.4
data/CHANGELOG.md CHANGED
@@ -1,11 +1,29 @@
1
1
  ## master (unreleased)
2
2
 
3
+ ## [0.2.0] - 2024-07-10
4
+
5
+ ### Breaking changes
6
+
7
+ * RUN_HEADED_TESTS env var now ignored
8
+
9
+ ### New features
10
+
11
+ * add README code block tests
12
+ * fingerprintjs tests cover WebGL llvmpipe driver and WebGL being disabled
13
+ * special test added to test WebGL fingerprint when code run with vglrun
14
+
15
+ ### Bug fixes
16
+
17
+ * [#4](https://gitlab.com/matzfan/selenium-tor/-/issues/4)
18
+ * [#5](https://gitlab.com/matzfan/selenium-tor/-/issues/5)
19
+ * [#7](https://gitlab.com/matzfan/selenium-tor/-/issues/7)
20
+
3
21
  ## [0.1.3] - 2023-12-08
4
22
 
5
23
  ### Bug fixes
6
24
 
7
25
  * added selenium-webdriver as runtime dependency
8
- * [#2](https://gitlab.com/matzfan/selenium_tor/-/issues/2) fixed, fingerprintjs VisitorId now same as TB's
26
+ * [#2](https://gitlab.com/matzfan/selenium-tor/-/issues/2) fixed, fingerprintjs VisitorId now same as TB's
9
27
 
10
28
  ### New features
11
29
 
@@ -30,7 +48,7 @@
30
48
  ### Bug fixes
31
49
 
32
50
  * Fix inability to add options to Tor::Options
33
- * [#1](https://gitlab.com/matzfan/selenium_tor/-/issues/1): Fix fonts leak at browserleaks
51
+ * [#1](https://gitlab.com/matzfan/selenium-tor/-/issues/1): Fix fonts leak at browserleaks
34
52
 
35
53
  ### New features
36
54
 
data/Guardfile CHANGED
@@ -1,25 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # A sample Guardfile
4
- # More info at https://github.com/guard/guard#readme
5
-
6
- ## Uncomment and set this to only include directories you want to watch
7
- # directories %w(app lib config test spec features) \
8
- # .select{|d| Dir.exist?(d) ? d : UI.warning("Directory #{d} does not exist")}
9
-
10
- ## Note: if you are using the `directories` clause above and you are not
11
- ## watching the project directory ('.'), then you will want to move
12
- ## the Guardfile to a watched dir and symlink it back, e.g.
13
- #
14
- # $ mkdir config
15
- # $ mv Guardfile config/
16
- # $ ln -s config/Guardfile .
17
- #
18
- # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
19
-
20
3
  guard :minitest do
21
4
  watch(%r{^test/(.*)/?test_(.*)\.rb$})
22
5
  watch(%r{^features/(.*)/?test_(.*)\.rb$})
23
- watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
24
- watch(%r{^test/test_helper\.rb$}) { 'test' }
6
+ watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
7
+ watch(%r{^test/test_helper\.rb$}) { 'test' }
8
+ watch(%r{^README.md$}) { 'test/test_readme.rb' }
25
9
  end
data/README.md CHANGED
@@ -5,14 +5,19 @@
5
5
 
6
6
  A Selenium extension for Tor Browser.
7
7
  ```ruby
8
- driver = Selenium::WebDriver.for :tor
8
+ @driver = Selenium::WebDriver.for :tor
9
+ @driver.quit
9
10
  ```
10
11
 
11
- # \_why?
12
+ ## \_why?
12
13
 
13
14
  I can use Firefox with Selenium and set a SOCKS proxy to use the Tor network, so why the need?
14
15
 
15
- The above approach will hide your IP, but there is a good chance your browser's unique or near-unique fingerprint may be logged by site owners. Subsequent visits could identify you. A primary aim of this project is to enable Selenium to leverage Tor Browser's unique anonymity characteristics - in particular its resitance to browser fingerprinting. The aim is to ensure Selenium Tor site visits leave an identical fingerprint to the thousands of regular Tor Browser users.
16
+ The above approach will hide your IP, but there is a good chance your browser's unique or near-unique fingerprint may be logged by site owners. Subsequent visits could identify you. A primary aim of this project is to enable Selenium to leverage Tor Browser's unique anonymity characteristics - in particular its resistance to browser fingerprinting. The aim is to ensure Selenium Tor site visits leave an identical fingerprint to the thousands of regular Tor Browser users.
17
+
18
+ ## Known issues
19
+
20
+ The gem uses Xvfb to allow Tor Browser to be manipulated headlessly. Xvfb in turn uses `llvmpipe` software acceleration which may lead to issues with WebGL fingerprinting - see [issue #7](https://gitlab.com/matzfan/selenium-tor/-/issues/7). If this is a problem we recommend using [VirtualGL](https://www.virtualgl.org) to force Xvfb to use your hardware driver instead. This is done by prepending your executable code with the command `vglrun`. For an example see the section below on testing. VirtualGL can be installed from a [package repo](https://virtualgl.org/Downloads/YUM).
16
21
 
17
22
  ## Installation
18
23
 
@@ -31,12 +36,11 @@ Tor Browser is based on Firefox, so for usage please read the Selenium [docs](ht
31
36
  A driver is instantiated like this:
32
37
  ```ruby
33
38
  options = Selenium::WebDriver::Tor::Options.new
34
- options.add_argument '--headless' # whatever you need
35
- driver = Selenium::WebDriver.for :tor, options: options
39
+ @driver = Selenium::WebDriver.for :tor, options: options
36
40
 
37
- driver.get 'https://check.torproject.org'
38
- puts driver.title # => Congratulations. This browser is configured to use Tor.
39
- driver.quit
41
+ @driver.get 'https://check.torproject.org'
42
+ @driver.title # => Congratulations. This browser is configured to use Tor.
43
+ @driver.quit
40
44
  ```
41
45
  The driver will not be instantiated until a connection to the Tor network is made. If the network is inaccessible for any reason a `TorNetworkError` will result.
42
46
 
@@ -48,7 +52,7 @@ A number of constants are set during driver initialization based upon values fou
48
52
  ```ruby
49
53
  Tor::TBB_DIR # path to the TBB root directory
50
54
  Tor::TBB_BROWSER_DIR # path to the 'Browser' directory in the above
51
- Tor::TBB_BINARY_PATH # path to the binary
55
+ Tor::TBB_BINARY_PATH # path to the firefox binary
52
56
  Tor::TBB_PROFILE_DIR # path to the default profile directory
53
57
  Tor::TBB_EXTENSIONS_DIR # path to the 'extensions' directory in the above
54
58
  Tor::TBB_VERSION # the version installed, e.g. "13.0.1", note: driver.capabilities.browser_version returns the Firefox version Tor Browser is based on
@@ -56,14 +60,17 @@ Tor::TBB_VERSION # the version installed, e.g. "13.0.1", note: driver.capabiliti
56
60
 
57
61
  ## Dependencies and configuration
58
62
 
63
+ [Tor Browser](https://www.torproject.org/download).
64
+
59
65
  As with Firefox browser, `geckodriver` needs to be installed and in your PATH.
60
66
 
61
- The gem needs to know the location of the Tor Browser Bundle (TBB). This can be installed from the Tor Project [downloads page](https://www.torproject.org/download/). The download package archive must be extracted and the root TBB directory (named "tor-browser") placed somewhere on your system. By default it is assumed to be in the current user's HOME directory. An alternative location can be set via the env var `TOR_BROWSER_ROOT_DIR` - e.g. `export TOR_BROWSER_ROOT_DIR=/home/<user>/Downloads`. The Tor Browser binary location is *automatically set* by reference to this directory, so there is no need to do this:
67
+ The gem needs to know the location of the Tor Browser Bundle (TBB). The Tor Browser download package archive must be extracted and the root TBB directory (named "tor-browser") placed somewhere on your system. By default it is assumed to be in the current user's HOME directory. An alternative location can be set via the env var `TOR_BROWSER_ROOT_DIR` - e.g. `export TOR_BROWSER_ROOT_DIR=/home/<user>/Downloads`. The Tor Browser binary location is *automatically set* by reference to this directory, so there is no need to do this:
62
68
  ```ruby
69
+ options = Selenium::WebDriver::Tor::Options.new
63
70
  options.binary = '/some/path/to/tor_firefox_binary' # UNNECESSARY
64
71
  ```
65
72
 
66
- The location of the TBB is not expected to change during execution.
73
+ The location of the TBB is not expected to change during code execution.
67
74
 
68
75
  Tor Selenium is tested on **Linux only** right now.
69
76
 
@@ -71,11 +78,15 @@ Tor Selenium is tested on **Linux only** right now.
71
78
 
72
79
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rake` to run the tests.
73
80
 
74
- Tests are run in headless mode by default. If you want to see what the browser is doing you can do this:
81
+ Tests are run in the display set by the `DISPLAY` env var, :0 by default. To run headless tests, set it to another value:
82
+
83
+ $ DISPLAY=:99 bundle exec rake
84
+
85
+ If you find tests are failing with `TorNetworkError` and a timeout message, check you have no other Tor Browser processes running. The processes to look for are either "firefox.real" or "firefox-esr". The latter may be legitimate if you are also running Firefox browser. You may also want to check the Tor network is actually up, it isn't always..
75
86
 
76
- $ export RUN_HEADED_TESTS=1 && bundle exec rake
87
+ If you wish run the `vglrun` WebGL fingerprint test (excluded from Rake) install VirtualGL (see above, assumes you have the relevent drivers installed) and run the following command:
77
88
 
78
- If you find tests are failing with `TorNetworkError` and a timeout message, check you have no other Tor Browser processes running. The process to look for is called "firefox.real". You may also want to check the Tor network is actually up, it isn't always..
89
+ $ DISPLAY=:99 vglrun bundle exec ruby test/features/fingerprinting/test_fingerprintjs_with_vglrun.rb
79
90
 
80
91
  ## Development
81
92
 
@@ -85,9 +96,9 @@ To install this gem onto your local machine, run `bundle exec rake install`.
85
96
 
86
97
  ## Contributing
87
98
 
88
- Bug reports and pull requests are welcome on GitLab at https://gitlab.com/matzfan/selenium_tor. For a pull request please checkout a suitably named feature branch before making and submitting changes.
99
+ Bug reports and pull requests are welcome on GitLab at https://gitlab.com/matzfan/selenium-tor. For a pull request please checkout a suitably named feature branch before making and submitting changes.
89
100
 
90
- This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://gitlab.com/matzfan/selenium_tor/CODE_OF_CONDUCT.md).
101
+ This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://gitlab.com/matzfan/selenium-tor/CODE_OF_CONDUCT.md).
91
102
 
92
103
  ## License
93
104
 
@@ -95,4 +106,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
95
106
 
96
107
  ## Code of Conduct
97
108
 
98
- Everyone interacting in the Selenium Tor project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://gitlab.com/matzfan/selenium_tor/CODE_OF_CONDUCT.md).
109
+ Everyone interacting in the Selenium Tor project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://gitlab.com/matzfan/selenium-tor/CODE_OF_CONDUCT.md).
data/Rakefile CHANGED
@@ -6,7 +6,8 @@ require 'rake/testtask'
6
6
  Rake::TestTask.new(:test) do |t|
7
7
  t.libs << 'test'
8
8
  t.libs << 'lib'
9
- t.test_files = FileList['test/**/test_*.rb']
9
+ t.test_files = FileList['test/**/test_*.rb'] - ['test/features/fingerprinting/test_fingerprintjs_with_vglrun.rb']
10
+ # t.warning = false
10
11
  end
11
12
 
12
13
  require 'rubocop/rake_task'
data/lib/tor/driver.rb CHANGED
@@ -10,29 +10,38 @@ module Selenium
10
10
  class Driver < DelegateClass(DriverNotYetConnectedToTorNetwork)
11
11
  class TorNetworkError < StandardError; end
12
12
 
13
- CONNECTION_STATUS_ID = 'torPreferences-status-tor-connect'
14
- CONNECTED = "Tor Network:\nConnected"
15
- NO_SCRIPT_XPI_URL = 'https://addons.mozilla.org/firefox/downloads/file/4178438/noscript-11.4.28.xpi'
13
+ CONNECT_BUTTON_ID = 'network-status-tor-connect-button' # visible only until connected
14
+ TOR_PREFS_CONNECTION_URL = 'about:preferences#connection'
15
+
16
+ attr_reader :support_data
16
17
 
17
18
  def initialize(...)
18
- @instance = DriverNotYetConnectedToTorNetwork.new(...)
19
+ instantiate_driver_from_tbb_dir(...)
19
20
  super(@instance)
20
21
  wait_for_tor_connection
21
- install_addons
22
+ install_extensions
22
23
  end
23
24
 
24
25
  private
25
26
 
27
+ def instantiate_driver_from_tbb_dir(...)
28
+ cwd = FileUtils.pwd
29
+ FileUtils.cd TBB_BROWSER_DIR # crucial - fixes [#2](https://gitlab.com/matzfan/selenium-tor/-/issues/2)
30
+ @instance = DriverNotYetConnectedToTorNetwork.new(...)
31
+ ensure
32
+ FileUtils.cd cwd
33
+ end
34
+
26
35
  def wait_for_tor_connection
27
- @instance.get 'about:preferences#connection'
28
- Wait.new(timeout: 10).until { @instance.find_element(:id, CONNECTION_STATUS_ID).text == CONNECTED }
36
+ @instance.get TOR_PREFS_CONNECTION_URL
37
+ Wait.new(timeout: 10).until { !@instance.find_element(:id, CONNECT_BUTTON_ID).displayed? }
29
38
  rescue Selenium::WebDriver::Error::TimeoutError => e
30
39
  @instance.quit # abort initialization
31
40
  raise TorNetworkError, "Cannot connect to Tor network: #{e.message}"
32
41
  end
33
42
 
34
- def install_addons
35
- @instance.install_addon URI.parse(NO_SCRIPT_XPI_URL).open
43
+ def install_extensions
44
+ Pathname.new(TBB_EXTENSIONS_DIR).children.each { |xpi_path| @instance.install_addon xpi_path }
36
45
  end
37
46
  end
38
47
  end
data/lib/tor/options.rb CHANGED
@@ -34,7 +34,7 @@ module Selenium
34
34
  ENV['FONTCONFIG_FILE'] = 'fonts.conf'
35
35
  FileUtils.rm_rf File.join(Tor::TBB_BROWSER_DIR, *%w[TorBrowser Data fontconfig])
36
36
  ENV['GSETTINGS_BACKEND'] = 'memory'
37
- FileUtils.cd Tor::TBB_BROWSER_DIR # crucial - fixes [#2](https://gitlab.com/matzfan/selenium-tor/-/issues/2)
37
+ # cd to TBB_BROWSER_DIR now handled in Tor::Driver
38
38
  end
39
39
  end
40
40
  end
data/lib/tor/profile.rb CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'selenium-webdriver'
4
4
  require_relative 'options'
5
- require_relative '../firefox_driver_lock_file_patch' unless
6
- Gem::Version.new(Selenium::WebDriver::VERSION) > Gem::Version.new('4.15')
7
5
 
8
6
  module Selenium
9
7
  module WebDriver
data/lib/tor/tor_prefs.rb CHANGED
@@ -16,7 +16,8 @@ module Selenium
16
16
  }.freeze
17
17
 
18
18
  OTHER_PREFS = {
19
- 'intl.language_notification.shown' => true # affects font fingerprint (viewport size)
19
+ 'intl.language_notification.shown' => true, # affects font fingerprint (viewport size)
20
+ 'remote.active-protocols' => 3 # new some time after selenium-webdriver 4.16
20
21
  }.freeze
21
22
 
22
23
  TOR_PREFS = FIRST_CONNECTION_PREFS.merge OTHER_PREFS
data/lib/tor/version.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  module Selenium
4
4
  module WebDriver
5
5
  module Tor
6
- VERSION = '0.1.3'
6
+ VERSION = '0.2.0'
7
7
  end
8
8
  end
9
9
  end
data/selenium_tor.gemspec CHANGED
@@ -6,19 +6,16 @@ Gem::Specification.new do |spec|
6
6
  spec.name = 'selenium_tor'
7
7
  spec.version = Selenium::WebDriver::Tor::VERSION
8
8
  spec.authors = ['MatzFan']
9
- spec.email = ['matzfan@mailinator.com']
10
9
 
11
10
  spec.summary = 'Selenium extension for Tor Browser'
12
11
  spec.description = 'An extension for Selenium::WebDriver that automates Tor Browser'
13
- spec.homepage = 'https://gitlab.com/matzfan/selenium_tor'
12
+ spec.homepage = 'https://gitlab.com/matzfan/selenium-tor'
14
13
  spec.license = 'MIT'
15
- spec.required_ruby_version = '>= 2.7.0'
16
-
17
- # spec.metadata['allowed_push_host'] =
14
+ spec.required_ruby_version = '>= 3.3.3'
18
15
 
19
16
  spec.metadata['homepage_uri'] = spec.homepage
20
- spec.metadata['source_code_uri'] = 'https://gitlab.com/matzfan/selenium_tor'
21
- spec.metadata['changelog_uri'] = 'https://gitlab.com/matzfan/selenium_tor/CHANGELOG.md'
17
+ spec.metadata['source_code_uri'] = 'https://gitlab.com/matzfan/selenium-tor'
18
+ spec.metadata['changelog_uri'] = 'https://gitlab.com/matzfan/selenium-tor/CHANGELOG.md'
22
19
  spec.metadata['rubygems_mfa_required'] = 'true'
23
20
 
24
21
  # Specify which files should be added to the gem when it is released.
@@ -33,5 +30,5 @@ Gem::Specification.new do |spec|
33
30
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
34
31
  spec.require_paths = ['lib']
35
32
 
36
- spec.add_runtime_dependency 'selenium-webdriver', '4.16.0'
33
+ spec.add_runtime_dependency 'selenium-webdriver', '~> 4.22'
37
34
  end
metadata CHANGED
@@ -1,36 +1,36 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium_tor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - MatzFan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-08 00:00:00.000000000 Z
11
+ date: 2024-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 4.16.0
19
+ version: '4.22'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '='
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 4.16.0
26
+ version: '4.22'
27
27
  description: An extension for Selenium::WebDriver that automates Tor Browser
28
28
  email:
29
- - matzfan@mailinator.com
30
29
  executables: []
31
30
  extensions: []
32
31
  extra_rdoc_files: []
33
32
  files:
33
+ - ".jshintrc"
34
34
  - ".rubocop.yml"
35
35
  - ".ruby-version"
36
36
  - ".yamllint"
@@ -41,7 +41,6 @@ files:
41
41
  - README.md
42
42
  - Rakefile
43
43
  - lib/driver.rb
44
- - lib/firefox_driver_lock_file_patch.rb
45
44
  - lib/options.rb
46
45
  - lib/selenium_tor.rb
47
46
  - lib/service.rb
@@ -53,13 +52,13 @@ files:
53
52
  - lib/tor/version.rb
54
53
  - selenium_tor.gemspec
55
54
  - sig/tor.rbs
56
- homepage: https://gitlab.com/matzfan/selenium_tor
55
+ homepage: https://gitlab.com/matzfan/selenium-tor
57
56
  licenses:
58
57
  - MIT
59
58
  metadata:
60
- homepage_uri: https://gitlab.com/matzfan/selenium_tor
61
- source_code_uri: https://gitlab.com/matzfan/selenium_tor
62
- changelog_uri: https://gitlab.com/matzfan/selenium_tor/CHANGELOG.md
59
+ homepage_uri: https://gitlab.com/matzfan/selenium-tor
60
+ source_code_uri: https://gitlab.com/matzfan/selenium-tor
61
+ changelog_uri: https://gitlab.com/matzfan/selenium-tor/CHANGELOG.md
63
62
  rubygems_mfa_required: 'true'
64
63
  post_install_message:
65
64
  rdoc_options: []
@@ -69,14 +68,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
69
68
  requirements:
70
69
  - - ">="
71
70
  - !ruby/object:Gem::Version
72
- version: 2.7.0
71
+ version: 3.3.3
73
72
  required_rubygems_version: !ruby/object:Gem::Requirement
74
73
  requirements:
75
74
  - - ">="
76
75
  - !ruby/object:Gem::Version
77
76
  version: '0'
78
77
  requirements: []
79
- rubygems_version: 3.5.0.dev
78
+ rubygems_version: 3.5.14
80
79
  signing_key:
81
80
  specification_version: 4
82
81
  summary: Selenium extension for Tor Browser
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Selenium
4
- module WebDriver
5
- module Firefox
6
- # patched class
7
- class Profile
8
- alias old_delete_lock_files delete_lock_files
9
-
10
- def delete_lock_files(directory)
11
- %w[.parentlock parent.lock lock].each do |name| # 'lock' file missing from Selenium < 4.16
12
- FileUtils.rm_f File.join(directory, name)
13
- end
14
- end
15
- end
16
- end
17
- end
18
- end