Skip to content

Commit 1d4e296

Browse files
committed
[bidi][java] Add preload script command
1 parent eb02fd4 commit 1d4e296

File tree

7 files changed

+199
-61
lines changed

7 files changed

+199
-61
lines changed

java/src/org/openqa/selenium/bidi/Script.java

Lines changed: 69 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.Set;
2828
import java.util.function.Function;
2929
import org.openqa.selenium.WebDriver;
30+
import org.openqa.selenium.bidi.script.ChannelValue;
3031
import org.openqa.selenium.bidi.script.EvaluateResult;
3132
import org.openqa.selenium.bidi.script.EvaluateResultExceptionValue;
3233
import org.openqa.selenium.bidi.script.EvaluateResultSuccess;
@@ -223,6 +224,71 @@ public List<RealmInfo> getRealmsInBrowsingContextByType(String browsingContext,
223224
realmInfoMapper));
224225
}
225226

227+
public String addPreloadScript(String functionDeclaration) {
228+
return this.bidi.send(
229+
new Command<>(
230+
"script.addPreloadScript",
231+
Map.of("functionDeclaration", functionDeclaration, "contexts", this.browsingContextIds),
232+
jsonInput -> {
233+
Map<String, Object> result = jsonInput.read(Map.class);
234+
return result.get("script").toString();
235+
}));
236+
}
237+
238+
public String addPreloadScript(String functionDeclaration, List<ChannelValue> arguments) {
239+
return this.bidi.send(
240+
new Command<>(
241+
"script.addPreloadScript",
242+
Map.of(
243+
"functionDeclaration",
244+
functionDeclaration,
245+
"contexts",
246+
this.browsingContextIds,
247+
"arguments",
248+
arguments),
249+
jsonInput -> {
250+
Map<String, Object> result = jsonInput.read(Map.class);
251+
return result.get("script").toString();
252+
}));
253+
}
254+
255+
public String addPreloadScript(String functionDeclaration, String sandbox) {
256+
return this.bidi.send(
257+
new Command<>(
258+
"script.addPreloadScript",
259+
Map.of(
260+
"functionDeclaration",
261+
functionDeclaration,
262+
"contexts",
263+
this.browsingContextIds,
264+
"sandbox",
265+
sandbox),
266+
jsonInput -> {
267+
Map<String, Object> result = jsonInput.read(Map.class);
268+
return result.get("script").toString();
269+
}));
270+
}
271+
272+
public String addPreloadScript(
273+
String functionDeclaration, List<ChannelValue> arguments, String sandbox) {
274+
return this.bidi.send(
275+
new Command<>(
276+
"script.addPreloadScript",
277+
Map.of(
278+
"functionDeclaration",
279+
functionDeclaration,
280+
"contexts",
281+
this.browsingContextIds,
282+
"arguments",
283+
arguments,
284+
"sandbox",
285+
sandbox),
286+
jsonInput -> {
287+
Map<String, Object> result = jsonInput.read(Map.class);
288+
return result.get("script").toString();
289+
}));
290+
}
291+
226292
private Map<String, Object> getCallFunctionParams(
227293
String targetType,
228294
String id,
@@ -284,16 +350,14 @@ private EvaluateResult createEvaluateResult(Map<String, Object> response) {
284350
EvaluateResult evaluateResult;
285351
String realmId = (String) response.get("realm");
286352

287-
if (type.equals(EvaluateResult.EvaluateResultType.SUCCESS.toString())) {
353+
if (type.equals(EvaluateResult.Type.SUCCESS.toString())) {
288354
RemoteValue remoteValue;
289355
try (StringReader reader = new StringReader(JSON.toJson(response.get("result")));
290356
JsonInput input = JSON.newInput(reader)) {
291357
remoteValue = input.read(RemoteValue.class);
292358
}
293359

294-
evaluateResult =
295-
new EvaluateResultSuccess(
296-
EvaluateResult.EvaluateResultType.SUCCESS, realmId, remoteValue);
360+
evaluateResult = new EvaluateResultSuccess(EvaluateResult.Type.SUCCESS, realmId, remoteValue);
297361
} else {
298362
ExceptionDetails exceptionDetails;
299363
try (StringReader reader = new StringReader(JSON.toJson(response.get("exceptionDetails")));
@@ -303,7 +367,7 @@ private EvaluateResult createEvaluateResult(Map<String, Object> response) {
303367

304368
evaluateResult =
305369
new EvaluateResultExceptionValue(
306-
EvaluateResult.EvaluateResultType.EXCEPTION, realmId, exceptionDetails);
370+
EvaluateResult.Type.EXCEPTION, realmId, exceptionDetails);
307371
}
308372

309373
return evaluateResult;

java/src/org/openqa/selenium/bidi/script/ChannelValue.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,23 @@
2020
import java.util.Map;
2121
import java.util.TreeMap;
2222

23-
class ChannelValue extends LocalValue {
23+
public class ChannelValue extends LocalValue {
2424

2525
private final String channelId;
2626
private SerializationOptions options;
2727

2828
private ResultOwnership resultOwnership;
2929

30-
ChannelValue(String channelId) {
30+
public ChannelValue(String channelId) {
3131
this.channelId = channelId;
3232
}
3333

34-
ChannelValue(String channelId, SerializationOptions options) {
34+
public ChannelValue(String channelId, SerializationOptions options) {
3535
this.channelId = channelId;
3636
this.options = options;
3737
}
3838

39-
ChannelValue(String channelId, ResultOwnership resultOwnership) {
39+
public ChannelValue(String channelId, ResultOwnership resultOwnership) {
4040
this.channelId = channelId;
4141
this.resultOwnership = resultOwnership;
4242
}

java/src/org/openqa/selenium/bidi/script/EvaluateResult.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@
1818
package org.openqa.selenium.bidi.script;
1919

2020
public interface EvaluateResult {
21-
EvaluateResultType getResultType();
21+
Type getResultType();
2222

2323
String getRealmId();
2424

25-
public enum EvaluateResultType {
25+
public enum Type {
2626
SUCCESS("success"),
2727
EXCEPTION("exception");
2828

2929
private final String type;
3030

31-
EvaluateResultType(String type) {
31+
Type(String type) {
3232
this.type = type;
3333
}
3434

java/src/org/openqa/selenium/bidi/script/EvaluateResultExceptionValue.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,19 @@
1818

1919
public class EvaluateResultExceptionValue implements EvaluateResult {
2020

21-
private final EvaluateResultType type;
21+
private final Type type;
2222
private final String realmId;
2323
private final ExceptionDetails exceptionDetails;
2424

2525
public EvaluateResultExceptionValue(
26-
EvaluateResultType type, String realmId, ExceptionDetails exceptionDetails) {
26+
Type type, String realmId, ExceptionDetails exceptionDetails) {
2727
this.type = type;
2828
this.realmId = realmId;
2929
this.exceptionDetails = exceptionDetails;
3030
}
3131

3232
@Override
33-
public EvaluateResultType getResultType() {
33+
public Type getResultType() {
3434
return type;
3535
}
3636

java/src/org/openqa/selenium/bidi/script/EvaluateResultSuccess.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,18 @@
1919

2020
public class EvaluateResultSuccess implements EvaluateResult {
2121

22-
private final EvaluateResultType type;
22+
private final Type type;
2323
private final String realmId;
2424
private final RemoteValue value;
2525

26-
public EvaluateResultSuccess(EvaluateResultType type, String realmId, RemoteValue value) {
26+
public EvaluateResultSuccess(Type type, String realmId, RemoteValue value) {
2727
this.type = type;
2828
this.realmId = realmId;
2929
this.value = value;
3030
}
3131

3232
@Override
33-
public EvaluateResultType getResultType() {
33+
public Type getResultType() {
3434
return this.type;
3535
}
3636

java/test/org/openqa/selenium/bidi/script/LocalValueTest.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ void canCallFunctionWithUndefinedArgument() {
6565
Optional.empty(),
6666
Optional.empty());
6767

68-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
68+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
6969
assertThat(result.getRealmId()).isNotNull();
7070

7171
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;
@@ -99,7 +99,7 @@ void canCallFunctionWithNullArgument() {
9999
Optional.empty(),
100100
Optional.empty());
101101

102-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
102+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
103103
assertThat(result.getRealmId()).isNotNull();
104104

105105
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;
@@ -133,7 +133,7 @@ void canCallFunctionWithMinusZeroArgument() {
133133
Optional.empty(),
134134
Optional.empty());
135135

136-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
136+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
137137
assertThat(result.getRealmId()).isNotNull();
138138

139139
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;
@@ -169,7 +169,7 @@ void canCallFunctionWithInfinityArgument() {
169169
Optional.empty(),
170170
Optional.empty());
171171

172-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
172+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
173173
assertThat(result.getRealmId()).isNotNull();
174174

175175
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;
@@ -206,7 +206,7 @@ void canCallFunctionWithMinusInfinityArgument() {
206206
Optional.empty(),
207207
Optional.empty());
208208

209-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
209+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
210210
assertThat(result.getRealmId()).isNotNull();
211211

212212
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;
@@ -242,7 +242,7 @@ void canCallFunctionWithNumberArgument() {
242242
Optional.empty(),
243243
Optional.empty());
244244

245-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
245+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
246246
assertThat(result.getRealmId()).isNotNull();
247247

248248
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;
@@ -278,7 +278,7 @@ void canCallFunctionWithBooleanArgument() {
278278
Optional.empty(),
279279
Optional.empty());
280280

281-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
281+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
282282
assertThat(result.getRealmId()).isNotNull();
283283

284284
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;
@@ -314,7 +314,7 @@ void canCallFunctionWithBigIntArgument() {
314314
Optional.empty(),
315315
Optional.empty());
316316

317-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
317+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
318318
assertThat(result.getRealmId()).isNotNull();
319319

320320
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;
@@ -353,7 +353,7 @@ void canCallFunctionWithArrayArgument() {
353353
Optional.empty(),
354354
Optional.empty());
355355

356-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
356+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
357357
assertThat(result.getRealmId()).isNotNull();
358358

359359
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;
@@ -395,7 +395,7 @@ void canCallFunctionWithSetArgument() {
395395
Optional.empty(),
396396
Optional.empty());
397397

398-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
398+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
399399
assertThat(result.getRealmId()).isNotNull();
400400

401401
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;
@@ -435,7 +435,7 @@ void canCallFunctionWithDateArgument() {
435435
Optional.empty(),
436436
Optional.empty());
437437

438-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
438+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
439439
assertThat(result.getRealmId()).isNotNull();
440440

441441
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;
@@ -475,7 +475,7 @@ void canCallFunctionWithMapArgument() {
475475
Optional.empty(),
476476
Optional.empty());
477477

478-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
478+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
479479
assertThat(result.getRealmId()).isNotNull();
480480

481481
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;
@@ -519,7 +519,7 @@ void canCallFunctionWithObjectArgument() {
519519
Optional.empty(),
520520
Optional.empty());
521521

522-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
522+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
523523
assertThat(result.getRealmId()).isNotNull();
524524

525525
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;
@@ -560,7 +560,7 @@ void canCallFunctionWithRegExpArgument() {
560560
Optional.empty(),
561561
Optional.empty());
562562

563-
assertThat(result.getResultType()).isEqualTo(EvaluateResult.EvaluateResultType.SUCCESS);
563+
assertThat(result.getResultType()).isEqualTo(EvaluateResult.Type.SUCCESS);
564564
assertThat(result.getRealmId()).isNotNull();
565565

566566
EvaluateResultSuccess successResult = (EvaluateResultSuccess) result;

0 commit comments

Comments
 (0)