Skip to content

Commit 51fb633

Browse files
committed
autoload all browser specific classes to fix circular dependency
1 parent 6bb1875 commit 51fb633

File tree

7 files changed

+51
-51
lines changed

7 files changed

+51
-51
lines changed

rb/lib/selenium/server.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ def download(required_version)
8585
segment_count += 1
8686

8787
if (segment_count % 15).zero?
88-
percent = (progress.to_f / total.to_f) * 100
88+
percent = progress.fdiv(total) * 100
8989
print "#{CL_RESET}Downloading #{download_file_name}: #{percent.to_i}% (#{progress} / #{total})"
9090
segment_count = 0
9191
end

rb/lib/selenium/webdriver/chrome.rb

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@
1919

2020
require 'net/http'
2121

22-
require 'selenium/webdriver/chrome/driver'
23-
require 'selenium/webdriver/chrome/profile'
24-
require 'selenium/webdriver/chrome/options'
25-
2622
module Selenium
2723
module WebDriver
2824
module Chrome
25+
autoload :Bridge, 'selenium/webdriver/chrome/bridge'
26+
autoload :Driver, 'selenium/webdriver/chrome/driver'
27+
autoload :Profile, 'selenium/webdriver/chrome/profile'
28+
autoload :Options, 'selenium/webdriver/chrome/options'
29+
autoload :Service, 'selenium/webdriver/chrome/service'
30+
2931
def self.driver_path=(path)
3032
WebDriver.logger.deprecate 'Selenium::WebDriver::Chrome#driver_path=',
3133
'Selenium::WebDriver::Chrome::Service#driver_path='
@@ -49,6 +51,3 @@ def self.path
4951
end # Chrome
5052
end # WebDriver
5153
end # Selenium
52-
53-
require 'selenium/webdriver/chrome/service'
54-
require 'selenium/webdriver/chrome/bridge'

rb/lib/selenium/webdriver/edge.rb

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,13 @@
1919

2020
require 'net/http'
2121

22-
require 'selenium/webdriver/edge_html/driver'
23-
require 'selenium/webdriver/edge_html/options'
24-
require 'selenium/webdriver/edge_chrome/bridge'
25-
require 'selenium/webdriver/edge_chrome/driver'
26-
require 'selenium/webdriver/edge_chrome/profile'
27-
require 'selenium/webdriver/edge_chrome/options'
28-
2922
module Selenium
3023
module WebDriver
3124
module EdgeHtml
25+
autoload :Driver, 'selenium/webdriver/edge_html/driver'
26+
autoload :Options, 'selenium/webdriver/edge_html/options'
27+
autoload :Service, 'selenium/webdriver/edge_html/service'
28+
3229
def self.driver_path=(path)
3330
WebDriver.logger.deprecate 'Selenium::WebDriver::Edge#driver_path=',
3431
'Selenium::WebDriver::Edge::Service#driver_path='
@@ -43,6 +40,12 @@ def self.driver_path
4340
end # EdgeHtml
4441

4542
module EdgeChrome
43+
autoload :Bridge, 'selenium/webdriver/edge_chrome/bridge'
44+
autoload :Driver, 'selenium/webdriver/edge_chrome/driver'
45+
autoload :Profile, 'selenium/webdriver/edge_chrome/profile'
46+
autoload :Options, 'selenium/webdriver/edge_chrome/options'
47+
autoload :Service, 'selenium/webdriver/edge_chrome/service'
48+
4649
def self.path=(path)
4750
Platform.assert_executable path
4851
@path = path
@@ -56,6 +59,3 @@ def self.path
5659
Edge = EdgeHtml # Alias EdgeHtml as Edge for now
5760
end # WebDriver
5861
end # Selenium
59-
60-
require 'selenium/webdriver/edge_html/service'
61-
require 'selenium/webdriver/edge_chrome/service'

rb/lib/selenium/webdriver/firefox.rb

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,18 @@
2121
require 'socket'
2222
require 'rexml/document'
2323

24-
require 'selenium/webdriver/firefox/driver'
25-
26-
require 'selenium/webdriver/firefox/extension'
27-
require 'selenium/webdriver/firefox/binary'
28-
require 'selenium/webdriver/firefox/profiles_ini'
29-
require 'selenium/webdriver/firefox/profile'
30-
require 'selenium/webdriver/firefox/bridge'
31-
require 'selenium/webdriver/firefox/driver'
32-
require 'selenium/webdriver/firefox/options'
33-
3424
module Selenium
3525
module WebDriver
3626
module Firefox
27+
autoload :Extension, 'selenium/webdriver/firefox/extension'
28+
autoload :Binary, 'selenium/webdriver/firefox/binary'
29+
autoload :ProfilesIni, 'selenium/webdriver/firefox/profiles_ini'
30+
autoload :Profile, 'selenium/webdriver/firefox/profile'
31+
autoload :Bridge, 'selenium/webdriver/firefox/bridge'
32+
autoload :Driver, 'selenium/webdriver/firefox/driver'
33+
autoload :Options, 'selenium/webdriver/firefox/options'
34+
autoload :Service, 'selenium/webdriver/firefox/service'
35+
3736
DEFAULT_PORT = 7055
3837
DEFAULT_ENABLE_NATIVE_EVENTS = Platform.os == :windows
3938
DEFAULT_SECURE_SSL = false
@@ -58,5 +57,3 @@ def self.path=(path)
5857
end # Firefox
5958
end # WebDriver
6059
end # Selenium
61-
62-
require 'selenium/webdriver/firefox/service'

rb/lib/selenium/webdriver/ie.rb

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,13 @@
1717
# specific language governing permissions and limitations
1818
# under the License.
1919

20-
require 'selenium/webdriver/ie/driver'
21-
require 'selenium/webdriver/ie/options'
22-
2320
module Selenium
2421
module WebDriver
2522
module IE
23+
autoload :Driver, 'selenium/webdriver/ie/driver'
24+
autoload :Options, 'selenium/webdriver/ie/options'
25+
autoload :Service, 'selenium/webdriver/ie/service'
26+
2627
def self.driver_path=(path)
2728
WebDriver.logger.deprecate 'Selenium::WebDriver::IE#driver_path=',
2829
'Selenium::WebDriver::IE::Service#driver_path='
@@ -37,5 +38,3 @@ def self.driver_path
3738
end # IE
3839
end # WebDriver
3940
end # Selenium
40-
41-
require 'selenium/webdriver/ie/service'

rb/lib/selenium/webdriver/remote.rb

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,19 @@
1919

2020
require 'uri'
2121

22-
require 'selenium/webdriver/remote/bridge'
23-
require 'selenium/webdriver/remote/driver'
24-
require 'selenium/webdriver/remote/response'
25-
require 'selenium/webdriver/remote/server_error'
26-
require 'selenium/webdriver/remote/http/common'
27-
require 'selenium/webdriver/remote/http/default'
28-
29-
require 'selenium/webdriver/remote/bridge'
30-
require 'selenium/webdriver/remote/capabilities'
31-
require 'selenium/webdriver/remote/commands'
22+
module Selenium
23+
module WebDriver
24+
module Remote
25+
autoload :Bridge, 'selenium/webdriver/remote/bridge'
26+
autoload :Driver, 'selenium/webdriver/remote/driver'
27+
autoload :Response, 'selenium/webdriver/remote/response'
28+
autoload :ServerError, 'selenium/webdriver/remote/server_error'
29+
autoload :Capabilities, 'selenium/webdriver/remote/capabilities'
30+
autoload :COMMANDS, 'selenium/webdriver/remote/commands'
31+
module Http
32+
autoload :Common, 'selenium/webdriver/remote/http/common'
33+
autoload :Default, 'selenium/webdriver/remote/http/default'
34+
end
35+
end
36+
end
37+
end

rb/lib/selenium/webdriver/safari.rb

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,14 @@
1717
# specific language governing permissions and limitations
1818
# under the License.
1919

20-
require 'selenium/webdriver/safari/bridge'
21-
require 'selenium/webdriver/safari/driver'
22-
require 'selenium/webdriver/safari/options'
23-
2420
module Selenium
2521
module WebDriver
2622
module Safari
23+
autoload :Bridge, 'selenium/webdriver/safari/bridge'
24+
autoload :Driver, 'selenium/webdriver/safari/driver'
25+
autoload :Options, 'selenium/webdriver/safari/options'
26+
autoload :Service, 'selenium/webdriver/safari/service'
27+
2728
class << self
2829
def technology_preview
2930
"/Applications/Safari\ Technology\ Preview.app/Contents/MacOS/safaridriver"
@@ -61,5 +62,3 @@ def driver_path
6162
end # Safari
6263
end # WebDriver
6364
end # Selenium
64-
65-
require 'selenium/webdriver/safari/service'

0 commit comments

Comments
 (0)