Skip to content

Commit e6366da

Browse files
committed
Replace BrowserType with a Browser interface
This allows us to do nice things like group together multiple browser names that a driver may use (such as both Safari and Edge do) in a single place without needing people to depend on the browser-specific maven deps.
1 parent 05a3a5e commit e6366da

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+269
-216
lines changed

java/src/org/openqa/selenium/chrome/AddHasCasting.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import java.util.Map;
2929
import java.util.function.Predicate;
3030

31-
import static org.openqa.selenium.remote.BrowserType.CHROME;
31+
import static org.openqa.selenium.remote.Browser.CHROME;
3232

3333
@AutoService({AdditionalHttpCommands.class, AugmenterProvider.class})
3434
public class AddHasCasting extends org.openqa.selenium.chromium.AddHasCasting {
@@ -45,6 +45,6 @@ GET_CAST_ISSUE_MESSAGE, new CommandInfo("session/:sessionId/goog/cast/get_issue_
4545

4646
@Override
4747
public Predicate<Capabilities> isApplicable() {
48-
return caps -> CHROME.equals(caps.getBrowserName());
48+
return CHROME::is;
4949
}
5050
}

java/src/org/openqa/selenium/chrome/AddHasCdp.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import java.util.Map;
2929
import java.util.function.Predicate;
3030

31-
import static org.openqa.selenium.remote.BrowserType.CHROME;
31+
import static org.openqa.selenium.remote.Browser.CHROME;
3232

3333
@AutoService({AdditionalHttpCommands.class, AugmenterProvider.class})
3434
public class AddHasCdp extends org.openqa.selenium.chromium.AddHasCdp {
@@ -41,6 +41,6 @@ public Map<String, CommandInfo> getAdditionalCommands() {
4141

4242
@Override
4343
public Predicate<Capabilities> isApplicable() {
44-
return caps -> CHROME.equals(caps.getBrowserName());
44+
return CHROME::is;
4545
}
4646
}

java/src/org/openqa/selenium/chrome/ChromeDriverInfo.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,19 @@
1818
package org.openqa.selenium.chrome;
1919

2020
import com.google.auto.service.AutoService;
21-
2221
import org.openqa.selenium.Capabilities;
2322
import org.openqa.selenium.ImmutableCapabilities;
2423
import org.openqa.selenium.SessionNotCreatedException;
2524
import org.openqa.selenium.WebDriver;
2625
import org.openqa.selenium.WebDriverException;
2726
import org.openqa.selenium.WebDriverInfo;
2827
import org.openqa.selenium.chromium.ChromiumDriverInfo;
29-
import org.openqa.selenium.remote.BrowserType;
3028
import org.openqa.selenium.remote.CapabilityType;
3129

3230
import java.util.Optional;
3331

32+
import static org.openqa.selenium.remote.Browser.CHROME;
33+
3434
@AutoService(WebDriverInfo.class)
3535
public class ChromeDriverInfo extends ChromiumDriverInfo {
3636

@@ -41,12 +41,12 @@ public String getDisplayName() {
4141

4242
@Override
4343
public Capabilities getCanonicalCapabilities() {
44-
return new ImmutableCapabilities(CapabilityType.BROWSER_NAME, BrowserType.CHROME);
44+
return new ImmutableCapabilities(CapabilityType.BROWSER_NAME, CHROME.browserName());
4545
}
4646

4747
@Override
4848
public boolean isSupporting(Capabilities capabilities) {
49-
return BrowserType.CHROME.equalsIgnoreCase(capabilities.getBrowserName()) ||
49+
return CHROME.is(capabilities) ||
5050
capabilities.getCapability("chromeOptions") != null ||
5151
capabilities.getCapability("goog:chromeOptions") != null;
5252
}

java/src/org/openqa/selenium/chrome/ChromeDriverService.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,9 @@
1717

1818
package org.openqa.selenium.chrome;
1919

20-
import static java.util.Collections.unmodifiableList;
21-
2220
import com.google.auto.service.AutoService;
23-
2421
import org.openqa.selenium.Capabilities;
2522
import org.openqa.selenium.WebDriverException;
26-
import org.openqa.selenium.remote.BrowserType;
2723
import org.openqa.selenium.remote.service.DriverService;
2824

2925
import java.io.File;
@@ -33,6 +29,9 @@
3329
import java.util.List;
3430
import java.util.Map;
3531

32+
import static java.util.Collections.unmodifiableList;
33+
import static org.openqa.selenium.remote.Browser.CHROME;
34+
3635
/**
3736
* Manages the life and death of a ChromeDriver server.
3837
*/
@@ -160,7 +159,7 @@ public static class Builder extends DriverService.Builder<
160159
public int score(Capabilities capabilities) {
161160
int score = 0;
162161

163-
if (BrowserType.CHROME.equals(capabilities.getBrowserName())) {
162+
if (CHROME.is(capabilities.getBrowserName())) {
164163
score++;
165164
}
166165

java/src/org/openqa/selenium/chrome/ChromeOptions.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,10 @@
2020
import org.openqa.selenium.Capabilities;
2121
import org.openqa.selenium.chromium.ChromiumOptions;
2222
import org.openqa.selenium.internal.Require;
23-
import org.openqa.selenium.remote.BrowserType;
2423
import org.openqa.selenium.remote.CapabilityType;
2524

25+
import static org.openqa.selenium.remote.Browser.CHROME;
26+
2627
/**
2728
* Class to manage options specific to {@link ChromeDriver}.
2829
*
@@ -53,8 +54,7 @@ public class ChromeOptions extends ChromiumOptions<ChromeOptions> {
5354
private ChromeDriverLogLevel logLevel;
5455

5556
public ChromeOptions() {
56-
57-
super(CapabilityType.BROWSER_NAME, BrowserType.CHROME, CAPABILITY);
57+
super(CapabilityType.BROWSER_NAME, CHROME.browserName(), CAPABILITY);
5858
}
5959

6060
public ChromeOptions setLogLevel(ChromeDriverLogLevel logLevel){

java/src/org/openqa/selenium/chromium/AddHasCdp.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import java.util.Map;
2929
import java.util.function.Predicate;
3030

31-
import static org.openqa.selenium.chromium.ChromiumDriver.KNOWN_CHROMIUM_BROWSERS;
31+
import static org.openqa.selenium.chromium.ChromiumDriver.IS_CHROMIUM_BROWSER;
3232

3333
public abstract class AddHasCdp implements AugmenterProvider<HasCdp>, AdditionalHttpCommands {
3434

@@ -39,7 +39,7 @@ public abstract class AddHasCdp implements AugmenterProvider<HasCdp>, Additional
3939

4040
@Override
4141
public Predicate<Capabilities> isApplicable() {
42-
return caps -> KNOWN_CHROMIUM_BROWSERS.contains(caps.getBrowserName());
42+
return caps -> IS_CHROMIUM_BROWSER.test(caps.getBrowserName());
4343
}
4444

4545
@Override

java/src/org/openqa/selenium/chromium/AddHasLaunchApp.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import java.util.Map;
3131
import java.util.function.Predicate;
3232

33-
import static org.openqa.selenium.chromium.ChromiumDriver.KNOWN_CHROMIUM_BROWSERS;
33+
import static org.openqa.selenium.chromium.ChromiumDriver.IS_CHROMIUM_BROWSER;
3434

3535
@AutoService({AdditionalHttpCommands.class, AugmenterProvider.class})
3636
public class AddHasLaunchApp implements AugmenterProvider<HasLaunchApp>, AdditionalHttpCommands {
@@ -47,7 +47,7 @@ public Map<String, CommandInfo> getAdditionalCommands() {
4747

4848
@Override
4949
public Predicate<Capabilities> isApplicable() {
50-
return caps -> KNOWN_CHROMIUM_BROWSERS.contains(caps.getBrowserName());
50+
return caps -> IS_CHROMIUM_BROWSER.test(caps.getBrowserName());
5151
}
5252

5353
@Override

java/src/org/openqa/selenium/chromium/AddHasNetworkConditions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import java.util.Map;
3232
import java.util.function.Predicate;
3333

34-
import static org.openqa.selenium.chromium.ChromiumDriver.KNOWN_CHROMIUM_BROWSERS;
34+
import static org.openqa.selenium.chromium.ChromiumDriver.IS_CHROMIUM_BROWSER;
3535

3636
@AutoService({AdditionalHttpCommands.class, AugmenterProvider.class})
3737
public class AddHasNetworkConditions implements AugmenterProvider<HasNetworkConditions>, AdditionalHttpCommands {
@@ -53,7 +53,7 @@ public Map<String, CommandInfo> getAdditionalCommands() {
5353

5454
@Override
5555
public Predicate<Capabilities> isApplicable() {
56-
return caps -> KNOWN_CHROMIUM_BROWSERS.contains(caps.getBrowserName());
56+
return caps -> IS_CHROMIUM_BROWSER.test(caps.getBrowserName());
5757
}
5858

5959
@Override

java/src/org/openqa/selenium/chromium/AddHasPermissions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import java.util.Map;
3131
import java.util.function.Predicate;
3232

33-
import static org.openqa.selenium.chromium.ChromiumDriver.KNOWN_CHROMIUM_BROWSERS;
33+
import static org.openqa.selenium.chromium.ChromiumDriver.IS_CHROMIUM_BROWSER;
3434

3535
@AutoService({AdditionalHttpCommands.class, AugmenterProvider.class})
3636
public class AddHasPermissions implements AugmenterProvider<HasPermissions>, AdditionalHttpCommands {
@@ -47,7 +47,7 @@ public Map<String, CommandInfo> getAdditionalCommands() {
4747

4848
@Override
4949
public Predicate<Capabilities> isApplicable() {
50-
return caps -> KNOWN_CHROMIUM_BROWSERS.contains(caps.getBrowserName());
50+
return caps -> IS_CHROMIUM_BROWSER.test(caps.getBrowserName());
5151
}
5252

5353
@Override

java/src/org/openqa/selenium/chromium/ChromiumDriver.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.openqa.selenium.logging.EventType;
4545
import org.openqa.selenium.logging.HasLogEvents;
4646
import org.openqa.selenium.mobile.NetworkConnection;
47+
import org.openqa.selenium.remote.Browser;
4748
import org.openqa.selenium.remote.CommandExecutor;
4849
import org.openqa.selenium.remote.FileDetector;
4950
import org.openqa.selenium.remote.RemoteTouchScreen;
@@ -62,9 +63,9 @@
6263
import java.util.function.Supplier;
6364
import java.util.logging.Logger;
6465

65-
import static org.openqa.selenium.remote.BrowserType.CHROME;
66-
import static org.openqa.selenium.remote.BrowserType.EDGE;
67-
import static org.openqa.selenium.remote.BrowserType.OPERA;
66+
import static org.openqa.selenium.remote.Browser.CHROME;
67+
import static org.openqa.selenium.remote.Browser.EDGE;
68+
import static org.openqa.selenium.remote.Browser.OPERA;
6869

6970
/**
7071
* A {@link WebDriver} implementation that controls a Chromium browser running on the local machine.
@@ -84,7 +85,10 @@ public class ChromiumDriver extends RemoteWebDriver implements
8485
NetworkConnection,
8586
WebStorage {
8687

87-
public static final List<String> KNOWN_CHROMIUM_BROWSERS = ImmutableList.of(CHROME, EDGE, OPERA, "msedge");
88+
public static final Predicate<String> IS_CHROMIUM_BROWSER = name ->
89+
CHROME.is(name) ||
90+
EDGE.is(name) ||
91+
OPERA.is(name);
8892
private static final Logger LOG = Logger.getLogger(ChromiumDriver.class.getName());
8993

9094
private final Capabilities capabilities;

0 commit comments

Comments
 (0)