selenium_tor 1.5.2 → 1.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|