Skip to content

Commit 2290a09

Browse files
committed
[java][cdp] add support Chrome 102 and remove for Chrome 99
1 parent 1b1199e commit 2290a09

File tree

11 files changed

+106
-87
lines changed

11 files changed

+106
-87
lines changed

‎Rakefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,9 @@ JAVA_RELEASE_TARGETS = %w[
9999
//java/src/org/openqa/selenium/chrome:chrome.publish
100100
//java/src/org/openqa/selenium/chromium:chromium.publish
101101
//java/src/org/openqa/selenium/devtools/v85:v85.publish
102-
//java/src/org/openqa/selenium/devtools/v99:v99.publish
103102
//java/src/org/openqa/selenium/devtools/v100:v100.publish
104103
//java/src/org/openqa/selenium/devtools/v101:v101.publish
104+
//java/src/org/openqa/selenium/devtools/v102:v102.publish
105105
//java/src/org/openqa/selenium/edge:edge.publish
106106
//java/src/org/openqa/selenium/firefox:firefox.publish
107107
//java/src/org/openqa/selenium/grid/sessionmap/jdbc:jdbc.publish

‎java/src/org/openqa/selenium/devtools/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@ Check this [README][] for more information.
66
They are typically downloaded from the
77
[devtools source](https://github.com/ChromeDevTools/devtools-protocol/tree/master/json)
88

9-
* Edit `//java/src/org/openqa/selenium/devtools:versions.bzl` to include the new version number (and
9+
* Edit [`//java/src/org/openqa/selenium/devtools:versions.bzl`][] to include the new version number (and
1010
possibly delete the old one, we tend to support only the last 3 versions)
1111
* Copy the most recent `//java/src/org/openqa/selenium/devtools/vXX` to
1212
`//java/src/org/openqa/selenium/devtools/vXX+1`.
1313
* Do a search and replace in that directory, converting `XX` to `XX+1`
14-
* Add the `vXX` version to the [versions][] file.
1514
* Add `//java/src/org/openqa/selenium/devtools/vXX:vXX.publish` version to the [Rakefile][].
1615
* Compile the code and fix the places where signatures have changed.
1716

‎java/src/org/openqa/selenium/devtools/v99/BUILD.bazel renamed to ‎java/src/org/openqa/selenium/devtools/v102/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ load("//common:defs.bzl", "copy_file")
33
load("//java:defs.bzl", "java_export", "java_library")
44
load("//java:version.bzl", "SE_VERSION")
55

6-
cdp_version = "v99"
6+
cdp_version = "v102"
77

88
java_export(
99
name = cdp_version,

‎java/src/org/openqa/selenium/devtools/v99/V99CdpInfo.java renamed to ‎java/src/org/openqa/selenium/devtools/v102/V102CdpInfo.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18-
package org.openqa.selenium.devtools.v99;
18+
package org.openqa.selenium.devtools.v102;
1919

2020
import com.google.auto.service.AutoService;
2121
import org.openqa.selenium.devtools.CdpInfo;
2222

2323
@AutoService(CdpInfo.class)
24-
public class V99CdpInfo extends CdpInfo {
24+
public class V102CdpInfo extends CdpInfo {
2525

26-
public V99CdpInfo() {
27-
super(99, V99Domains::new);
26+
public V102CdpInfo() {
27+
super(102, V102Domains::new);
2828
}
2929
}

‎java/src/org/openqa/selenium/devtools/v99/V99Domains.java renamed to ‎java/src/org/openqa/selenium/devtools/v102/V102Domains.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18-
package org.openqa.selenium.devtools.v99;
18+
package org.openqa.selenium.devtools.v102;
1919

2020
import org.openqa.selenium.devtools.DevTools;
2121
import org.openqa.selenium.devtools.idealized.Domains;
@@ -26,21 +26,21 @@
2626
import org.openqa.selenium.devtools.idealized.target.Target;
2727
import org.openqa.selenium.internal.Require;
2828

29-
public class V99Domains implements Domains {
29+
public class V102Domains implements Domains {
3030

31-
private final V99Javascript js;
32-
private final V99Events events;
33-
private final V99Log log;
34-
private final V99Network network;
35-
private final V99Target target;
31+
private final V102Javascript js;
32+
private final V102Events events;
33+
private final V102Log log;
34+
private final V102Network network;
35+
private final V102Target target;
3636

37-
public V99Domains(DevTools devtools) {
37+
public V102Domains(DevTools devtools) {
3838
Require.nonNull("DevTools", devtools);
39-
events = new V99Events(devtools);
40-
js = new V99Javascript(devtools);
41-
log = new V99Log();
42-
network = new V99Network(devtools);
43-
target = new V99Target();
39+
events = new V102Events(devtools);
40+
js = new V102Javascript(devtools);
41+
log = new V102Log();
42+
network = new V102Network(devtools);
43+
target = new V102Target();
4444
}
4545

4646
@Override

‎java/src/org/openqa/selenium/devtools/v99/V99Events.java renamed to ‎java/src/org/openqa/selenium/devtools/v102/V102Events.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18-
package org.openqa.selenium.devtools.v99;
18+
package org.openqa.selenium.devtools.v102;
1919

2020
import com.google.common.collect.ImmutableList;
2121
import org.openqa.selenium.JavascriptException;
@@ -25,19 +25,19 @@
2525
import org.openqa.selenium.devtools.events.ConsoleEvent;
2626
import org.openqa.selenium.devtools.idealized.Events;
2727
import org.openqa.selenium.devtools.idealized.runtime.model.RemoteObject;
28-
import org.openqa.selenium.devtools.v99.runtime.Runtime;
29-
import org.openqa.selenium.devtools.v99.runtime.model.ConsoleAPICalled;
30-
import org.openqa.selenium.devtools.v99.runtime.model.ExceptionDetails;
31-
import org.openqa.selenium.devtools.v99.runtime.model.ExceptionThrown;
32-
import org.openqa.selenium.devtools.v99.runtime.model.StackTrace;
28+
import org.openqa.selenium.devtools.v102.runtime.Runtime;
29+
import org.openqa.selenium.devtools.v102.runtime.model.ConsoleAPICalled;
30+
import org.openqa.selenium.devtools.v102.runtime.model.ExceptionDetails;
31+
import org.openqa.selenium.devtools.v102.runtime.model.ExceptionThrown;
32+
import org.openqa.selenium.devtools.v102.runtime.model.StackTrace;
3333

3434
import java.time.Instant;
3535
import java.util.List;
3636
import java.util.Optional;
3737

38-
public class V99Events extends Events<ConsoleAPICalled, ExceptionThrown> {
38+
public class V102Events extends Events<ConsoleAPICalled, ExceptionThrown> {
3939

40-
public V99Events(DevTools devtools) {
40+
public V102Events(DevTools devtools) {
4141
super(devtools);
4242
}
4343

@@ -81,7 +81,7 @@ protected ConsoleEvent toConsoleEvent(ConsoleAPICalled event) {
8181
protected JavascriptException toJsException(ExceptionThrown event) {
8282
ExceptionDetails details = event.getExceptionDetails();
8383
Optional<StackTrace> maybeTrace = details.getStackTrace();
84-
Optional<org.openqa.selenium.devtools.v99.runtime.model.RemoteObject>
84+
Optional<org.openqa.selenium.devtools.v102.runtime.model.RemoteObject>
8585
maybeException = details.getException();
8686

8787
String message = maybeException
@@ -103,12 +103,12 @@ protected JavascriptException toJsException(ExceptionThrown event) {
103103
StackTrace trace = maybeTrace.get();
104104

105105
exception.setStackTrace(trace.getCallFrames().stream()
106-
.map(frame -> new StackTraceElement(
107-
"",
108-
frame.getFunctionName(),
109-
frame.getUrl(),
110-
frame.getLineNumber()))
111-
.toArray(StackTraceElement[]::new));
106+
.map(frame -> new StackTraceElement(
107+
"",
108+
frame.getFunctionName(),
109+
frame.getUrl(),
110+
frame.getLineNumber()))
111+
.toArray(StackTraceElement[]::new));
112112

113113
return exception;
114114
}

‎java/src/org/openqa/selenium/devtools/v99/V99Javascript.java renamed to ‎java/src/org/openqa/selenium/devtools/v102/V102Javascript.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,22 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18-
package org.openqa.selenium.devtools.v99;
18+
package org.openqa.selenium.devtools.v102;
1919

2020
import org.openqa.selenium.devtools.Command;
2121
import org.openqa.selenium.devtools.DevTools;
2222
import org.openqa.selenium.devtools.Event;
2323
import org.openqa.selenium.devtools.idealized.Javascript;
24-
import org.openqa.selenium.devtools.v99.page.Page;
25-
import org.openqa.selenium.devtools.v99.page.model.ScriptIdentifier;
26-
import org.openqa.selenium.devtools.v99.runtime.Runtime;
27-
import org.openqa.selenium.devtools.v99.runtime.model.BindingCalled;
24+
import org.openqa.selenium.devtools.v102.page.Page;
25+
import org.openqa.selenium.devtools.v102.page.model.ScriptIdentifier;
26+
import org.openqa.selenium.devtools.v102.runtime.Runtime;
27+
import org.openqa.selenium.devtools.v102.runtime.model.BindingCalled;
2828

2929
import java.util.Optional;
3030

31-
public class V99Javascript extends Javascript<ScriptIdentifier, BindingCalled> {
31+
public class V102Javascript extends Javascript<ScriptIdentifier, BindingCalled> {
3232

33-
public V99Javascript(DevTools devtools) {
33+
public V102Javascript(DevTools devtools) {
3434
super(devtools);
3535
}
3636

‎java/src/org/openqa/selenium/devtools/v99/V99Log.java renamed to ‎java/src/org/openqa/selenium/devtools/v102/V102Log.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,21 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18-
package org.openqa.selenium.devtools.v99;
18+
package org.openqa.selenium.devtools.v102;
1919

2020
import org.openqa.selenium.devtools.Command;
2121
import org.openqa.selenium.devtools.ConverterFunctions;
2222
import org.openqa.selenium.devtools.Event;
23-
import org.openqa.selenium.devtools.v99.log.Log;
24-
import org.openqa.selenium.devtools.v99.log.model.LogEntry;
25-
import org.openqa.selenium.devtools.v99.runtime.model.Timestamp;
23+
import org.openqa.selenium.devtools.v102.log.Log;
24+
import org.openqa.selenium.devtools.v102.log.model.LogEntry;
25+
import org.openqa.selenium.devtools.v102.runtime.model.Timestamp;
2626
import org.openqa.selenium.json.JsonInput;
2727

2828
import java.util.function.Function;
2929
import java.util.logging.Level;
3030

31-
public class V99Log implements org.openqa.selenium.devtools.idealized.log.Log {
31+
public class V102Log implements org.openqa.selenium.devtools.idealized.log.Log {
32+
3233
@Override
3334
public Command<Void> enable() {
3435
return Log.enable();

‎java/src/org/openqa/selenium/devtools/v99/V99Network.java renamed to ‎java/src/org/openqa/selenium/devtools/v102/V102Network.java

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
// specific language governing permissions and limitations
1616
// under the License.
1717

18-
package org.openqa.selenium.devtools.v99;
18+
package org.openqa.selenium.devtools.v102;
1919

2020
import com.google.common.collect.ImmutableList;
2121
import com.google.common.io.ByteStreams;
@@ -25,14 +25,14 @@
2525
import org.openqa.selenium.devtools.DevToolsException;
2626
import org.openqa.selenium.devtools.Event;
2727
import org.openqa.selenium.devtools.idealized.Network;
28-
import org.openqa.selenium.devtools.v99.fetch.Fetch;
29-
import org.openqa.selenium.devtools.v99.fetch.model.AuthChallengeResponse;
30-
import org.openqa.selenium.devtools.v99.fetch.model.AuthRequired;
31-
import org.openqa.selenium.devtools.v99.fetch.model.HeaderEntry;
32-
import org.openqa.selenium.devtools.v99.fetch.model.RequestPattern;
33-
import org.openqa.selenium.devtools.v99.fetch.model.RequestPaused;
34-
import org.openqa.selenium.devtools.v99.fetch.model.RequestStage;
35-
import org.openqa.selenium.devtools.v99.network.model.Request;
28+
import org.openqa.selenium.devtools.v102.fetch.Fetch;
29+
import org.openqa.selenium.devtools.v102.fetch.model.AuthChallengeResponse;
30+
import org.openqa.selenium.devtools.v102.fetch.model.AuthRequired;
31+
import org.openqa.selenium.devtools.v102.fetch.model.HeaderEntry;
32+
import org.openqa.selenium.devtools.v102.fetch.model.RequestPattern;
33+
import org.openqa.selenium.devtools.v102.fetch.model.RequestPaused;
34+
import org.openqa.selenium.devtools.v102.fetch.model.RequestStage;
35+
import org.openqa.selenium.devtools.v102.network.model.Request;
3636
import org.openqa.selenium.internal.Either;
3737
import org.openqa.selenium.remote.http.HttpRequest;
3838
import org.openqa.selenium.remote.http.HttpResponse;
@@ -50,36 +50,37 @@
5050

5151
import static java.net.HttpURLConnection.HTTP_OK;
5252

53-
public class V99Network extends Network<AuthRequired, RequestPaused> {
53+
public class V102Network extends Network<AuthRequired, RequestPaused> {
5454

55-
private static final Logger LOG = Logger.getLogger(V99Network.class.getName());
55+
private static final Logger LOG = Logger.getLogger(V102Network.class.getName());
5656

57-
public V99Network(DevTools devTools) {
57+
public V102Network(DevTools devTools) {
5858
super(devTools);
5959
}
6060

6161
@Override
6262
protected Command<Void> setUserAgentOverride(UserAgent userAgent) {
63-
return org.openqa.selenium.devtools.v99.network.Network.setUserAgentOverride(
63+
return org.openqa.selenium.devtools.v102.network.Network.setUserAgentOverride(
6464
userAgent.userAgent(), userAgent.acceptLanguage(), userAgent.platform(), Optional.empty());
6565
}
6666

6767
@Override
6868
protected Command<Void> enableNetworkCaching() {
69-
return org.openqa.selenium.devtools.v99.network.Network.setCacheDisabled(false);
69+
return org.openqa.selenium.devtools.v102.network.Network.setCacheDisabled(false);
7070
}
7171

7272
@Override
7373
protected Command<Void> disableNetworkCaching() {
74-
return org.openqa.selenium.devtools.v99.network.Network.setCacheDisabled(true);
74+
return org.openqa.selenium.devtools.v102.network.Network.setCacheDisabled(true);
7575
}
7676

7777
@Override
7878
protected Command<Void> enableFetchForAllPatterns() {
7979
return Fetch.enable(
8080
Optional.of(ImmutableList.of(
8181
new RequestPattern(Optional.of("*"), Optional.empty(), Optional.of(RequestStage.REQUEST)),
82-
new RequestPattern(Optional.of("*"), Optional.empty(), Optional.of(RequestStage.RESPONSE)))),
82+
new RequestPattern(Optional.of("*"), Optional.empty(),
83+
Optional.of(RequestStage.RESPONSE)))),
8384
Optional.of(true));
8485
}
8586

@@ -99,7 +100,8 @@ protected String getUriFrom(AuthRequired authRequired) {
99100
}
100101

101102
@Override
102-
protected Command<Void> continueWithAuth(AuthRequired authRequired, UsernameAndPassword credentials) {
103+
protected Command<Void> continueWithAuth(AuthRequired authRequired,
104+
UsernameAndPassword credentials) {
103105
return Fetch.continueWithAuth(
104106
authRequired.getRequestId(),
105107
new AuthChallengeResponse(
@@ -112,7 +114,8 @@ protected Command<Void> continueWithAuth(AuthRequired authRequired, UsernameAndP
112114
protected Command<Void> cancelAuth(AuthRequired authRequired) {
113115
return Fetch.continueWithAuth(
114116
authRequired.getRequestId(),
115-
new AuthChallengeResponse(AuthChallengeResponse.Response.CANCELAUTH, Optional.empty(), Optional.empty()));
117+
new AuthChallengeResponse(AuthChallengeResponse.Response.CANCELAUTH, Optional.empty(),
118+
Optional.empty()));
116119
}
117120

118121
@Override
@@ -122,14 +125,18 @@ public Event<RequestPaused> requestPausedEvent() {
122125

123126
@Override
124127
public Either<HttpRequest, HttpResponse> createSeMessages(RequestPaused pausedReq) {
125-
if (pausedReq.getResponseStatusCode().isPresent() || pausedReq.getResponseErrorReason().isPresent()) {
128+
if (pausedReq.getResponseStatusCode().isPresent() || pausedReq.getResponseErrorReason()
129+
.isPresent()) {
126130
String body;
127131
boolean bodyIsBase64Encoded;
128132

129133
try {
130-
Fetch.GetResponseBodyResponse base64Body = devTools.send(Fetch.getResponseBody(pausedReq.getRequestId()));
134+
Fetch.GetResponseBodyResponse
135+
base64Body =
136+
devTools.send(Fetch.getResponseBody(pausedReq.getRequestId()));
131137
body = base64Body.getBody();
132-
bodyIsBase64Encoded = base64Body.getBase64Encoded() != null && base64Body.getBase64Encoded();
138+
bodyIsBase64Encoded =
139+
base64Body.getBase64Encoded() != null && base64Body.getBase64Encoded();
133140
} catch (DevToolsException e) {
134141
// Redirects don't seem to have bodies
135142
int code = pausedReq.getResponseStatusCode().orElse(HTTP_OK);
@@ -143,7 +150,9 @@ public Either<HttpRequest, HttpResponse> createSeMessages(RequestPaused pausedRe
143150

144151
List<Map.Entry<String, String>> headers = new LinkedList<>();
145152
pausedReq.getResponseHeaders().ifPresent(resHeaders ->
146-
resHeaders.forEach(header -> headers.add(new AbstractMap.SimpleEntry<>(header.getName(), header.getValue()))));
153+
resHeaders.forEach(header -> headers.add(
154+
new AbstractMap.SimpleEntry<>(header.getName(),
155+
header.getValue()))));
147156

148157
HttpResponse res = createHttpResponse(
149158
pausedReq.getResponseStatusCode(),
@@ -191,7 +200,8 @@ protected Command<Void> continueRequest(RequestPaused pausedReq, HttpRequest req
191200
}
192201

193202
List<HeaderEntry> headers = new LinkedList<>();
194-
req.getHeaderNames().forEach(name -> req.getHeaders(name).forEach(value -> headers.add(new HeaderEntry(name, value))));
203+
req.getHeaderNames().forEach(
204+
name -> req.getHeaders(name).forEach(value -> headers.add(new HeaderEntry(name, value))));
195205

196206
return Fetch.continueRequest(
197207
pausedReq.getRequestId(),
@@ -205,7 +215,8 @@ protected Command<Void> continueRequest(RequestPaused pausedReq, HttpRequest req
205215
@Override
206216
protected Command<Void> fulfillRequest(RequestPaused pausedReq, HttpResponse res) {
207217
List<HeaderEntry> headers = new LinkedList<>();
208-
res.getHeaderNames().forEach(name -> res.getHeaders(name).forEach(value -> headers.add(new HeaderEntry(name, value))));
218+
res.getHeaderNames().forEach(
219+
name -> res.getHeaders(name).forEach(value -> headers.add(new HeaderEntry(name, value))));
209220

210221
ByteArrayOutputStream bos = new ByteArrayOutputStream();
211222
try (InputStream is = res.getContent().get()) {

0 commit comments

Comments
 (0)