selenium_tor 1.5.2 → 1.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +4 -4
- data/CHANGELOG.md +13 -0
- data/README.md +31 -15
- data/lib/tor/driver.rb +8 -1
- data/lib/tor/libxul_checksums.yml +48 -16
- data/lib/tor/libxul_patchable.rb +3 -5
- data/lib/tor/version.rb +1 -1
- metadata +19 -11
- data/.ruby-version +0 -1
- data/selenium_tor.gemspec +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45483bd8f793aa018296ee9ae0e06c496d0dd4dde2155e5421f05f7da9d497c1
|
4
|
+
data.tar.gz: 8ca6956063b24ee1b30e3c8a4a7f2332fcc40fb12be62a9fd94058470e5ff657
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa1ad5934e06fb5a69c81e267e55d919cc29cce8fbc0480297b0439d65db53c79c63e27dfc718455b90d6368f5af359bd153003f570befc88a6c96bb3bc18dc4
|
7
|
+
data.tar.gz: a565f2f16b886d9a70c3646775e6cb093fc586b9702e01f7707bbae481395f8207322525355a5224fe2251d119681e18285ecebec48d0b78d07b27bf775f0e4b
|
data/.rubocop.yml
CHANGED
@@ -23,6 +23,10 @@ Lint/RescueException:
|
|
23
23
|
Exclude:
|
24
24
|
- 'test/test_readme.rb'
|
25
25
|
|
26
|
+
Minitest/TestFileName:
|
27
|
+
Exclude:
|
28
|
+
- 'test/features/fingerprinting/vglrun_test_fingerprintjs.rb'
|
29
|
+
|
26
30
|
Style/RegexpLiteral:
|
27
31
|
Exclude:
|
28
32
|
- 'Guardfile'
|
@@ -32,7 +36,3 @@ Minitest/TestMethodName:
|
|
32
36
|
|
33
37
|
Minitest/AssertTruthy:
|
34
38
|
Enabled: false
|
35
|
-
|
36
|
-
Minitest/TestFileName:
|
37
|
-
Exclude:
|
38
|
-
- test/features/fingerprinting/vglrun_test_fingerprintjs.rb
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,18 @@
|
|
1
1
|
## master (unreleased)
|
2
2
|
|
3
|
+
## [1.5.4] - 2024-10-10
|
4
|
+
|
5
|
+
* Add Bsdiff gem dependency
|
6
|
+
* Add [TZP](https://arkenfox.github.io/TZP/tzp.html) test
|
7
|
+
|
8
|
+
### Bug fixes
|
9
|
+
|
10
|
+
* [#18](https://gitlab.com/matzfan/selenium-tor/-/issues/18)
|
11
|
+
|
12
|
+
## [1.5.3] - 2024-09-08
|
13
|
+
|
14
|
+
* Bump rexml 3.3.7 to fix [rexml missing strscan dep](https://github.com/ruby/rexml/issues/140)
|
15
|
+
|
3
16
|
## [1.5.2] - 2024-09-08
|
4
17
|
|
5
18
|
* Fix missing require for YAML in LibxulPatchable module
|
data/README.md
CHANGED
@@ -5,14 +5,22 @@
|
|
5
5
|
|
6
6
|
A Selenium extension for Tor Browser.
|
7
7
|
```ruby
|
8
|
+
# before_all
|
9
|
+
require 'selenium_tor'
|
10
|
+
|
8
11
|
options = Selenium::WebDriver::Tor::Options.new
|
9
12
|
@driver = Selenium::WebDriver.for :tor, options: options
|
10
13
|
```
|
14
|
+
When you are done don't forget to quit the driver. Failure to do so may leave orphaned tor processes.
|
15
|
+
```ruby
|
16
|
+
# after_all
|
17
|
+
@driver&.quit
|
18
|
+
```
|
11
19
|
Once you have a driver instance:
|
12
20
|
```ruby
|
13
21
|
@driver.get 'https://check.torproject.org'
|
14
22
|
@driver.title
|
15
|
-
# => Congratulations. This browser is configured to use Tor.
|
23
|
+
# => "Congratulations. This browser is configured to use Tor."
|
16
24
|
```
|
17
25
|
|
18
26
|
## \_why?
|
@@ -35,14 +43,13 @@ If bundler is not being used to manage dependencies, install the gem by executin
|
|
35
43
|
|
36
44
|
[Tor Browser](https://www.torproject.org/download).
|
37
45
|
|
38
|
-
The shared libraries Tor Bowser requires will be available if you have Firefox or Firefox ESR installed on your system. If not, do `sudo apt install firefox-esr` or the equivalent for your package manager.
|
39
|
-
|
40
46
|
As with Firefox browser, `geckodriver` needs to be installed and in your PATH.
|
41
47
|
|
42
48
|
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:
|
43
49
|
```ruby
|
44
50
|
options = Selenium::WebDriver::Tor::Options.new
|
45
51
|
options.binary = '/some/path/to/tor_firefox_binary' # UNNECESSARY
|
52
|
+
# => '/some/path/to/tor_firefox_binary'
|
46
53
|
```
|
47
54
|
|
48
55
|
The location of the TBB is not expected to change during code execution.
|
@@ -53,18 +60,21 @@ Tor Selenium is tested on **Linux only** right now.
|
|
53
60
|
|
54
61
|
A configuration option to patch the libxul.so packaged with Tor Browser is provided. This has the effect of preventing websites from fingerprinting Selenium-driven Tor Browser via a JS call to `navigator.webdriver`:
|
55
62
|
```ruby
|
56
|
-
Tor::Driver
|
63
|
+
@driver_class = Selenium::WebDriver::Tor::Driver
|
64
|
+
@driver_class.libxul_patched? # is Tor Browser's libxul.so patched?
|
57
65
|
# => false
|
58
|
-
|
59
|
-
|
66
|
+
@driver_class.patch_libxul # patch libxul.so
|
67
|
+
@driver_class.libxul_patched?
|
60
68
|
# => true
|
61
|
-
|
69
|
+
@driver_class.unpatch_libxul # revert the patch and restore the libxul.so packaged with Tor Browser
|
70
|
+
# => 0
|
62
71
|
```
|
63
|
-
The patcher uses the
|
72
|
+
The patcher uses the [Bsdiff](https://gitlab.com/matzfan/bsdiff) gem, which in turn requires the bzip2 library (`libbz2-dev`).
|
64
73
|
|
65
74
|
## Usage
|
66
75
|
```ruby
|
67
76
|
require 'selenium_tor'
|
77
|
+
# => false
|
68
78
|
```
|
69
79
|
Tor Browser is based on Firefox, so for usage please read the Selenium [docs](https://www.selenium.dev/documentation/webdriver/browsers/firefox) for Firefox browser.
|
70
80
|
|
@@ -94,18 +104,19 @@ end
|
|
94
104
|
|
95
105
|
@drivers = [driver, driver]
|
96
106
|
|
97
|
-
Parallel.all?(@drivers, in_threads: @drivers.size) do |driver|
|
107
|
+
::Parallel.all?(@drivers, in_threads: @drivers.size) do |driver|
|
98
108
|
driver.get 'https://check.torproject.org'
|
99
109
|
end
|
100
110
|
|
101
111
|
@drivers.each(&:quit)
|
112
|
+
# => truthy
|
102
113
|
```
|
103
114
|
### Tor Browser specific functionality
|
104
115
|
|
105
116
|
You can get and set the security level (shield icon in TB) as follows. 4 is 'Standard', 2 is 'Safer', 1 is 'Safest'.
|
106
117
|
```ruby
|
107
118
|
@driver.security_level
|
108
|
-
# => 4
|
119
|
+
# => 4
|
109
120
|
@driver.security_level = 2
|
110
121
|
@driver.security_level
|
111
122
|
# => 2
|
@@ -113,16 +124,17 @@ You can get and set the security level (shield icon in TB) as follows. 4 is 'Sta
|
|
113
124
|
You can get a new circuit for the current page ('New Tor circuit for this site' on TB's application menu):
|
114
125
|
```ruby
|
115
126
|
@driver.new_circuit_for_site # new circuit for the current page domain
|
127
|
+
# => nil
|
116
128
|
```
|
117
129
|
### Miscellaneous
|
118
130
|
|
119
131
|
You can get and set Driver preferences dynamically like this. Caveat emptor.
|
120
132
|
```ruby
|
121
133
|
@driver.pref['browser.download.dir']
|
122
|
-
# =>
|
123
|
-
@driver.pref['browser.download.dir'] = 'home/user/Downloads'
|
134
|
+
# => ''
|
135
|
+
@driver.pref['browser.download.dir'] = '/home/user/Downloads'
|
124
136
|
@driver.pref['browser.download.dir']
|
125
|
-
# =>
|
137
|
+
# => '/home/user/Downloads'
|
126
138
|
```
|
127
139
|
|
128
140
|
The `Selenium::WebDriver::Tor` namespace is used for `Driver`, `Options`, `Profile` and all tor-specific classes. Otherwise Selenium's `Selenium::WebDriver::Firefox` namespace is used.
|
@@ -131,13 +143,15 @@ Remote functionality is not tested, but may be if a suitable Tor Browser Docker
|
|
131
143
|
|
132
144
|
A number of constants are set during driver initialization based upon values found in the Tor Browser Bundle (TBB) root directory - see below. These include:
|
133
145
|
```ruby
|
146
|
+
Tor = Selenium::WebDriver::Tor
|
134
147
|
Tor::TBB_DIR # path to the TBB root directory
|
135
148
|
Tor::TBB_BROWSER_DIR # path to the 'Browser' directory in the above
|
136
149
|
Tor::TBB_BINARY_PATH # path to the firefox binary
|
137
150
|
Tor::TBB_TOR_BINARY_PATH # path to the bundled tor binary
|
138
151
|
Tor::TBB_PROFILE_DIR # path to the default profile directory
|
139
152
|
Tor::TBB_EXTENSIONS_DIR # path to the 'extensions' directory in the above
|
140
|
-
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
|
153
|
+
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
|
154
|
+
# => instance_of String
|
141
155
|
```
|
142
156
|
|
143
157
|
## Known issues
|
@@ -150,7 +164,9 @@ The gem uses Xvfb to allow Tor Browser to be manipulated headlessly. Xvfb in tur
|
|
150
164
|
|
151
165
|
## Testing
|
152
166
|
|
153
|
-
After checking out the repo, run `bin/setup` to install dependencies
|
167
|
+
~~After checking out the repo, run `bin/setup` to install dependencies.~~
|
168
|
+
|
169
|
+
Tests dependencies are `[bsdiff](https://www.daemonology.net/bsdiff)`, `VirtualGL` (see Fingerprinting above) and `Xvfb` if you want to run headless tests.
|
154
170
|
|
155
171
|
Tests are run in the display set by the `DISPLAY` env var, usually :0 by default. To run headless tests, set it to another value:
|
156
172
|
|
data/lib/tor/driver.rb
CHANGED
@@ -29,7 +29,8 @@ module Selenium
|
|
29
29
|
@data_dir = Dir.mktmpdir
|
30
30
|
@options = options || Options.new # fix for issue #11, 'tis a puzzlement
|
31
31
|
add_torrc_path_to_options
|
32
|
-
@instance = DriverDelegate.new(options: @options, **)
|
32
|
+
# @instance = DriverDelegate.new(options: @options, **)
|
33
|
+
@instance = DriverDelegate.new(options: @options, **, service: service)
|
33
34
|
install_extensions @instance
|
34
35
|
create_tor_process_and_start_tor @options.tor_opts
|
35
36
|
super(@instance)
|
@@ -87,6 +88,12 @@ module Selenium
|
|
87
88
|
def domain
|
88
89
|
URI(current_url).host&.match(/[^\.]+\.\w+$/)
|
89
90
|
end
|
91
|
+
|
92
|
+
def service
|
93
|
+
service = Service.tor
|
94
|
+
service.args << '--enable-crash-reporter' # BUG: 18, https://github.com/mozilla/geckodriver/issues/2202
|
95
|
+
service
|
96
|
+
end
|
90
97
|
end
|
91
98
|
end
|
92
99
|
end
|
@@ -1,21 +1,53 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
unpatched_libxul:
|
4
|
-
patched_libxul:
|
5
|
-
patch_checksum:
|
6
|
-
|
7
|
-
unpatched_libxul:
|
8
|
-
patched_libxul:
|
9
|
-
patch_checksum:
|
10
|
-
14.
|
11
|
-
unpatched_libxul:
|
12
|
-
patched_libxul:
|
13
|
-
patch_checksum:
|
14
|
-
14.
|
15
|
-
unpatched_libxul:
|
16
|
-
patched_libxul:
|
17
|
-
patch_checksum:
|
2
|
+
14.0a8:
|
3
|
+
unpatched_libxul: 3ce2cef75c68f52df50cc435c9307bae8596ecbbf53d067e0731506096fb36cd
|
4
|
+
patched_libxul: 789bb47f02d7f5c87cae05409ea31a2cf1d222f6716c2dd81fc333f221bf8c16
|
5
|
+
patch_checksum: d5d4e4bbd43e7070da5fe74b1ecf461ec1d45535ac65b3884de43941d7dbc795
|
6
|
+
14.0a7:
|
7
|
+
unpatched_libxul: d5cb03c1a4eec29035fb416f8eccece7457d20e941cb3214b6f38290930a8b89
|
8
|
+
patched_libxul: 99eff0d6aa3afe9c824820dd502d65578275cfeaeed95892abd133176195284f
|
9
|
+
patch_checksum: d2954379bb924e61867f3c5f9c4d15cd2785bd3927ecf759ad1adb08c4c48911
|
10
|
+
14.0a6:
|
11
|
+
unpatched_libxul: 03d715c15e52bce158d6c7b51635fe662013bce99ed8a7557d11e4d9a6f242be
|
12
|
+
patched_libxul: dea564104ca64c7c40a50d6a1b7bb68c6c99e91ad67d5a31e71c07d0534ac2c9
|
13
|
+
patch_checksum: 709de7e4e96569750dddce0b61b206e2e03a4a941bb754284c5a558dc82f5eff
|
14
|
+
14.0a5:
|
15
|
+
unpatched_libxul: b21ee80498095637c801648464afb2ccfbe07fabc38107ea326f79f7703ea497
|
16
|
+
patched_libxul: bdbcf7e96eb8f58cb5b499576ff47b6b4aecea95e146045fe2a837c92af7ca53
|
17
|
+
patch_checksum: 36db05c8fd7ce8a9d37fa4aec204d587c676ebff7c7432c219a7be1861afdd35
|
18
18
|
14.0a4:
|
19
19
|
unpatched_libxul: 2edf6d6a22db0c64f2488cad9a335279018f5ef589c4bfdfe631d227c50fd0f2
|
20
20
|
patched_libxul: 602fd5be68deb8fbd30b733c403f36ac125834cec2bc10ed2085e1b50b3ea776
|
21
21
|
patch_checksum: 23dc44777b828cabfcbd2341c678b7743f5da6e9cce633b1637674334ca5773f
|
22
|
+
14.0a3:
|
23
|
+
unpatched_libxul: f448fc180b547d622b969fe170028408f75493cf95be5e4c1180594daec2226b
|
24
|
+
patched_libxul: 337a4ef0e723069695294b37a4843126529c44e2bc4f90b1533b547100355db3
|
25
|
+
patch_checksum: 08dd8cab30c4416adf7ab6411e1346dce4a8b6f42e4c410adcd5bc63a71506e5
|
26
|
+
14.0a2:
|
27
|
+
unpatched_libxul: e0eda8db975fe315e9be32b3bf95ee62767c60ee34deac97a7163f8ab0480dc9
|
28
|
+
patched_libxul: ed05f9c383f4ecbce69d978aefc0625c44874193707ebe11166e714b3e2b4f64
|
29
|
+
patch_checksum: 0cf817f97bdbe51fba5ad61d566934c9ebdda8fce5540bc803aeca23e0ac3e8b
|
30
|
+
13.5.7:
|
31
|
+
unpatched_libxul: dff5619f50ca52a53f231e837252a89114240bac0b66fc401e037145fb48e35a
|
32
|
+
patched_libxul: d840ea5b9f502531ab96dc983602964fcc44ccec33e47066ce7e8f43a5db0348
|
33
|
+
patch_checksum: ea6fb30bd4591f4eb0a1eb99aaf2d2629f69ddd431bb6c59abd8d96656165650
|
34
|
+
13.5.6:
|
35
|
+
unpatched_libxul: 048d9332ed8ad4b40ff445d4135341b1facdec134fe933936311475c097eb664
|
36
|
+
patched_libxul: 13f813580551b03bad26be5f30e16e24b933abddf64aa255f4764349bb7a5a8f
|
37
|
+
patch_checksum: e9ccf50e16a3bd182e777dffa95af1d789273af32bae0fbb6af58dc1cb0f4ff0
|
38
|
+
13.5.5:
|
39
|
+
unpatched_libxul: 67a1bacf07a2c5ef3a6ac3f0f63af114ffc6567a962ceba411c8262abbef0284
|
40
|
+
patched_libxul: c9d8fcd83ee8d1254672effc04c94040c6d8433c147a380028eec51f7e61557f
|
41
|
+
patch_checksum: 2d87245eb18f3f5625b818b183e45ce888ef00d562efc0a78186f13a49034ecc
|
42
|
+
13.5.4:
|
43
|
+
unpatched_libxul: d4b20c9c3aa969f009254fac1e134239b05ca316b84ddb360c2e6f6cfbb062ea
|
44
|
+
patched_libxul: c55212fb3644d79b70cab7f14e0dd829d317fa158bab71278a16bb0407d92195
|
45
|
+
patch_checksum: c9f89c1fc1906912385fb0eaaa0bfb1b7152a1cb9e38a6066dd8cc32e104e7dd
|
46
|
+
13.5.3:
|
47
|
+
unpatched_libxul: a3d065c3f77a0c28dd798952965fc4a2d3c28fb8171728b212fff31e7c8bea20
|
48
|
+
patched_libxul: ef43a1e5e1d89f4be717430153088357ecc0625c28444ab9b084587927cb7383
|
49
|
+
patch_checksum: 9d1d6596e2efe7a74b43cc469f5f0c6e9a59752e9fccea6613b896393c2651ae
|
50
|
+
13.5.2:
|
51
|
+
unpatched_libxul: b2f8b3fd25466bd3ffa12fb34b422767b28e09577d5714d6d0c97f695dac15dc
|
52
|
+
patched_libxul: 7f761479c2d0307b97023455cfd7811b5749690302f54508b247720105dd0a3b
|
53
|
+
patch_checksum: 695f7534586c757781bd33a6dbc627cfe62d010edce20e5754fa5efff7aa80d0
|
data/lib/tor/libxul_patchable.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'bsdiff'
|
3
4
|
require 'digest'
|
4
5
|
require 'json'
|
5
6
|
require 'open-uri'
|
@@ -13,9 +14,8 @@ module Selenium
|
|
13
14
|
module LibxulPatchable
|
14
15
|
class LibxulPatchableError < StandardError; end
|
15
16
|
|
16
|
-
# PATCH_REPO = 'https://gitlab.com/matzfan/keymaster/-/releases' # TODO
|
17
17
|
LIBXUL_CHECKSUMS = YAML.load_file(File.join(__dir__, 'libxul_checksums.yml'))[Tor::TBB_VERSION]
|
18
|
-
PATCH_REPO = 'https://gitlab.com/matzfan/keymaster/-/raw/
|
18
|
+
PATCH_REPO = 'https://gitlab.com/matzfan/keymaster/-/raw/master/patches/tor-browser'
|
19
19
|
ISSUES_URL = 'https://gitlab.com/matzfan/keymaster/-/issues'
|
20
20
|
|
21
21
|
def libxul_patched?
|
@@ -60,9 +60,7 @@ module Selenium
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def execute_patch(patchfile)
|
63
|
-
|
64
|
-
|
65
|
-
`bspatch #{libxul_original} #{libxul_patched} #{patchfile}`
|
63
|
+
Bsdiff.patch libxul_original, libxul_patched, patchfile
|
66
64
|
end
|
67
65
|
|
68
66
|
def unpatched_libxul_checksum_for_version
|
data/lib/tor/version.rb
CHANGED
metadata
CHANGED
@@ -1,38 +1,49 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: selenium_tor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MatzFan
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date: 2024-09
|
10
|
+
date: 2024-10-09 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
12
|
+
- !ruby/object:Gem::Dependency
|
13
|
+
name: bsdiff
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - ">="
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: 0.0.2
|
19
|
+
type: :runtime
|
20
|
+
prerelease: false
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
requirements:
|
23
|
+
- - ">="
|
24
|
+
- !ruby/object:Gem::Version
|
25
|
+
version: 0.0.2
|
13
26
|
- !ruby/object:Gem::Dependency
|
14
27
|
name: selenium-webdriver
|
15
28
|
requirement: !ruby/object:Gem::Requirement
|
16
29
|
requirements:
|
17
30
|
- - ">="
|
18
31
|
- !ruby/object:Gem::Version
|
19
|
-
version: '4.
|
32
|
+
version: '4.24'
|
20
33
|
type: :runtime
|
21
34
|
prerelease: false
|
22
35
|
version_requirements: !ruby/object:Gem::Requirement
|
23
36
|
requirements:
|
24
37
|
- - ">="
|
25
38
|
- !ruby/object:Gem::Version
|
26
|
-
version: '4.
|
39
|
+
version: '4.24'
|
27
40
|
description: An extension for Selenium::WebDriver that automates Tor Browser
|
28
|
-
email:
|
29
41
|
executables: []
|
30
42
|
extensions: []
|
31
43
|
extra_rdoc_files: []
|
32
44
|
files:
|
33
45
|
- ".jshintrc"
|
34
46
|
- ".rubocop.yml"
|
35
|
-
- ".ruby-version"
|
36
47
|
- ".yamllint"
|
37
48
|
- CHANGELOG.md
|
38
49
|
- Guardfile
|
@@ -56,7 +67,6 @@ files:
|
|
56
67
|
- lib/tor/tor_process.rb
|
57
68
|
- lib/tor/torrc.rb
|
58
69
|
- lib/tor/version.rb
|
59
|
-
- selenium_tor.gemspec
|
60
70
|
- sig/tor.rbs
|
61
71
|
- tmp/.placeholder
|
62
72
|
homepage: https://gitlab.com/matzfan/selenium-tor
|
@@ -67,7 +77,6 @@ metadata:
|
|
67
77
|
source_code_uri: https://gitlab.com/matzfan/selenium-tor
|
68
78
|
changelog_uri: https://gitlab.com/matzfan/selenium-tor/CHANGELOG.md
|
69
79
|
rubygems_mfa_required: 'true'
|
70
|
-
post_install_message:
|
71
80
|
rdoc_options: []
|
72
81
|
require_paths:
|
73
82
|
- lib
|
@@ -82,8 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
82
91
|
- !ruby/object:Gem::Version
|
83
92
|
version: '0'
|
84
93
|
requirements: []
|
85
|
-
rubygems_version: 3.
|
86
|
-
signing_key:
|
94
|
+
rubygems_version: 3.6.0.dev
|
87
95
|
specification_version: 4
|
88
96
|
summary: Selenium extension for Tor Browser
|
89
97
|
test_files: []
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
3.3.5
|
data/selenium_tor.gemspec
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'lib/tor/version'
|
4
|
-
|
5
|
-
Gem::Specification.new do |spec|
|
6
|
-
spec.name = 'selenium_tor'
|
7
|
-
spec.version = Selenium::WebDriver::Tor::VERSION
|
8
|
-
spec.authors = ['MatzFan']
|
9
|
-
|
10
|
-
spec.summary = 'Selenium extension for Tor Browser'
|
11
|
-
spec.description = 'An extension for Selenium::WebDriver that automates Tor Browser'
|
12
|
-
spec.homepage = 'https://gitlab.com/matzfan/selenium-tor'
|
13
|
-
spec.license = 'MIT'
|
14
|
-
spec.required_ruby_version = '>= 3.2'
|
15
|
-
|
16
|
-
spec.metadata['homepage_uri'] = spec.homepage
|
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'
|
19
|
-
spec.metadata['rubygems_mfa_required'] = 'true'
|
20
|
-
|
21
|
-
# Specify which files should be added to the gem when it is released.
|
22
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
23
|
-
spec.files = Dir.chdir(__dir__) do
|
24
|
-
`git ls-files -z`.split("\x0").reject do |f|
|
25
|
-
(File.expand_path(f) == __FILE__) ||
|
26
|
-
f.start_with?(*%w[bin/ test/ spec/ features/ .git .circleci appveyor Gemfile])
|
27
|
-
end
|
28
|
-
end
|
29
|
-
spec.bindir = 'exe'
|
30
|
-
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
31
|
-
spec.require_paths = ['lib']
|
32
|
-
|
33
|
-
spec.add_dependency 'selenium-webdriver', '>= 4.23'
|
34
|
-
end
|