Skip to content

Commit 808f666

Browse files
authored
fix(api): make all event listeners accept one parameter (#225)
1 parent d1f1287 commit 808f666

File tree

12 files changed

+49
-75
lines changed

12 files changed

+49
-75
lines changed

playwright/src/main/java/com/microsoft/playwright/Browser.java

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

1919
import java.nio.file.Path;
2020
import java.util.*;
21+
import java.util.function.Consumer;
2122

2223
/**
2324
* - extends: [EventEmitter]
@@ -44,8 +45,8 @@ public int height() {
4445
}
4546

4647

47-
void onDisconnected(Runnable handler);
48-
void offDisconnected(Runnable handler);
48+
void onDisconnected(Consumer<Browser> handler);
49+
void offDisconnected(Consumer<Browser> handler);
4950

5051

5152
class NewContextOptions {

playwright/src/main/java/com/microsoft/playwright/BrowserContext.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ public List<OriginState> origins() {
9595
}
9696

9797

98-
void onClose(Runnable handler);
99-
void offClose(Runnable handler);
98+
void onClose(Consumer<BrowserContext> handler);
99+
void offClose(Consumer<BrowserContext> handler);
100100

101101
void onPage(Consumer<Page> handler);
102102
void offPage(Consumer<Page> handler);

playwright/src/main/java/com/microsoft/playwright/Page.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,20 +75,20 @@ interface Error {
7575
}
7676

7777

78-
void onClose(Runnable handler);
79-
void offClose(Runnable handler);
78+
void onClose(Consumer<Page> handler);
79+
void offClose(Consumer<Page> handler);
8080

8181
void onConsole(Consumer<ConsoleMessage> handler);
8282
void offConsole(Consumer<ConsoleMessage> handler);
8383

84-
void onCrash(Runnable handler);
85-
void offCrash(Runnable handler);
84+
void onCrash(Consumer<Page> handler);
85+
void offCrash(Consumer<Page> handler);
8686

8787
void onDialog(Consumer<Dialog> handler);
8888
void offDialog(Consumer<Dialog> handler);
8989

90-
void onDomContentLoaded(Runnable handler);
91-
void offDomContentLoaded(Runnable handler);
90+
void onDOMContentLoaded(Consumer<Page> handler);
91+
void offDOMContentLoaded(Consumer<Page> handler);
9292

9393
void onDownload(Consumer<Download> handler);
9494
void offDownload(Consumer<Download> handler);
@@ -105,8 +105,8 @@ interface Error {
105105
void onFrameNavigated(Consumer<Frame> handler);
106106
void offFrameNavigated(Consumer<Frame> handler);
107107

108-
void onLoad(Runnable handler);
109-
void offLoad(Runnable handler);
108+
void onLoad(Consumer<Page> handler);
109+
void offLoad(Consumer<Page> handler);
110110

111111
void onPageError(Consumer<Error> handler);
112112
void offPageError(Consumer<Error> handler);

playwright/src/main/java/com/microsoft/playwright/WebSocket.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ interface FrameData {
3030
}
3131

3232

33-
void onClose(Runnable handler);
34-
void offClose(Runnable handler);
33+
void onClose(Consumer<WebSocket> handler);
34+
void offClose(Consumer<WebSocket> handler);
3535

3636
void onFrameReceived(Consumer<FrameData> handler);
3737
void offFrameReceived(Consumer<FrameData> handler);

playwright/src/main/java/com/microsoft/playwright/impl/BrowserContextImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,12 @@ enum EventType {
6060
}
6161

6262
@Override
63-
public void onClose(Runnable handler) {
63+
public void onClose(Consumer<BrowserContext> handler) {
6464
listeners.add(EventType.CLOSE, handler);
6565
}
6666

6767
@Override
68-
public void offClose(Runnable handler) {
68+
public void offClose(Consumer<BrowserContext> handler) {
6969
listeners.remove(EventType.CLOSE, handler);
7070
}
7171

@@ -416,7 +416,7 @@ protected void handleEvent(String event, JsonObject params) {
416416
if (browser != null) {
417417
browser.contexts.remove(this);
418418
}
419-
listeners.notify(EventType.CLOSE, null);
419+
listeners.notify(EventType.CLOSE, this);
420420
}
421421
}
422422
}

playwright/src/main/java/com/microsoft/playwright/impl/BrowserImpl.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.HashSet;
2828
import java.util.List;
2929
import java.util.Set;
30+
import java.util.function.Consumer;
3031

3132
import static com.microsoft.playwright.impl.Serialization.gson;
3233
import static com.microsoft.playwright.impl.Utils.convertViaJson;
@@ -46,12 +47,12 @@ enum EventType {
4647
}
4748

4849
@Override
49-
public void onDisconnected(Runnable handler) {
50+
public void onDisconnected(Consumer<Browser> handler) {
5051
listeners.add(EventType.DISCONNECTED, handler);
5152
}
5253

5354
@Override
54-
public void offDisconnected(Runnable handler) {
55+
public void offDisconnected(Consumer<Browser> handler) {
5556
listeners.remove(EventType.DISCONNECTED, handler);
5657
}
5758

@@ -136,7 +137,7 @@ public String version() {
136137
void handleEvent(String event, JsonObject parameters) {
137138
if ("close".equals(event)) {
138139
isConnected = false;
139-
listeners.notify(EventType.DISCONNECTED, null);
140+
listeners.notify(EventType.DISCONNECTED, this);
140141
}
141142
}
142143
}

playwright/src/main/java/com/microsoft/playwright/impl/ListenerCollection.java

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -47,32 +47,6 @@ public Object data() {
4747
}
4848
}
4949

50-
private static class RunnableWrapper<EventType> implements Listener<EventType> {
51-
final Runnable callback;
52-
53-
private RunnableWrapper(Runnable callback) {
54-
this.callback = callback;
55-
}
56-
57-
@Override
58-
public void handle(Event<EventType> event) {
59-
callback.run();
60-
}
61-
62-
@Override
63-
public boolean equals(Object o) {
64-
if (this == o) return true;
65-
if (o == null || getClass() != o.getClass()) return false;
66-
RunnableWrapper<?> that = (RunnableWrapper<?>) o;
67-
return Objects.equals(callback, that.callback);
68-
}
69-
70-
@Override
71-
public int hashCode() {
72-
return Objects.hash(callback);
73-
}
74-
}
75-
7650
private static class ConsumerWrapper<EventType> implements Listener<EventType> {
7751
final Consumer<?> callback;
7852

@@ -98,13 +72,6 @@ public int hashCode() {
9872
}
9973
}
10074

101-
void add(EventType type, Runnable listener) {
102-
add(type, new RunnableWrapper<>(listener));
103-
}
104-
void remove(EventType type, Runnable listener) {
105-
remove(type, new RunnableWrapper<>(listener));
106-
}
107-
10875
void add(EventType type, Consumer listener) {
10976
add(type, new ConsumerWrapper<>(listener));
11077
}

playwright/src/main/java/com/microsoft/playwright/impl/PageImpl.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,9 @@ protected void handleEvent(String event, JsonObject params) {
155155
}
156156
}
157157
} else if ("load".equals(event)) {
158-
listeners.notify(EventType.LOAD, null);
158+
listeners.notify(EventType.LOAD, this);
159159
} else if ("domcontentloaded".equals(event)) {
160-
listeners.notify(EventType.DOMCONTENTLOADED, null);
160+
listeners.notify(EventType.DOMCONTENTLOADED, this);
161161
} else if ("request".equals(event)) {
162162
String guid = params.getAsJsonObject("request").get("guid").getAsString();
163163
Request request = connection.getExistingObject(guid);
@@ -210,11 +210,11 @@ protected void handleEvent(String event, JsonObject params) {
210210
SerializedError error = gson().fromJson(params.getAsJsonObject("error"), SerializedError.class);
211211
listeners.notify(EventType.PAGEERROR, new ErrorImpl(error));
212212
} else if ("crash".equals(event)) {
213-
listeners.notify(EventType.CRASH, null);
213+
listeners.notify(EventType.CRASH, this);
214214
} else if ("close".equals(event)) {
215215
isClosed = true;
216216
browserContext.pages.remove(this);
217-
listeners.notify(EventType.CLOSE, null);
217+
listeners.notify(EventType.CLOSE, this);
218218
}
219219
}
220220

@@ -237,12 +237,12 @@ private void updateFileChooserInterception(boolean enabled) {
237237
}
238238

239239
@Override
240-
public void onClose(Runnable handler) {
240+
public void onClose(Consumer<Page> handler) {
241241
listeners.add(EventType.CLOSE, handler);
242242
}
243243

244244
@Override
245-
public void offClose(Runnable handler) {
245+
public void offClose(Consumer<Page> handler) {
246246
listeners.remove(EventType.CLOSE, handler);
247247
}
248248

@@ -257,12 +257,12 @@ public void offConsole(Consumer<ConsoleMessage> handler) {
257257
}
258258

259259
@Override
260-
public void onCrash(Runnable handler) {
260+
public void onCrash(Consumer<Page> handler) {
261261
listeners.add(EventType.CRASH, handler);
262262
}
263263

264264
@Override
265-
public void offCrash(Runnable handler) {
265+
public void offCrash(Consumer<Page> handler) {
266266
listeners.remove(EventType.CRASH, handler);
267267
}
268268

@@ -277,12 +277,12 @@ public void offDialog(Consumer<Dialog> handler) {
277277
}
278278

279279
@Override
280-
public void onDomContentLoaded(Runnable handler) {
280+
public void onDOMContentLoaded(Consumer<Page> handler) {
281281
listeners.add(EventType.DOMCONTENTLOADED, handler);
282282
}
283283

284284
@Override
285-
public void offDomContentLoaded(Runnable handler) {
285+
public void offDOMContentLoaded(Consumer<Page> handler) {
286286
listeners.remove(EventType.DOMCONTENTLOADED, handler);
287287
}
288288

@@ -337,12 +337,12 @@ public void offFrameNavigated(Consumer<Frame> handler) {
337337
}
338338

339339
@Override
340-
public void onLoad(Runnable handler) {
340+
public void onLoad(Consumer<Page> handler) {
341341
listeners.add(EventType.LOAD, handler);
342342
}
343343

344344
@Override
345-
public void offLoad(Runnable handler) {
345+
public void offLoad(Consumer<Page> handler) {
346346
listeners.remove(EventType.LOAD, handler);
347347
}
348348

playwright/src/main/java/com/microsoft/playwright/impl/WebSocketImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ enum EventType {
4444
}
4545

4646
@Override
47-
public void onClose(Runnable handler) {
47+
public void onClose(Consumer<WebSocket> handler) {
4848
listeners.add(EventType.CLOSE, handler);
4949
}
5050

5151
@Override
52-
public void offClose(Runnable handler) {
52+
public void offClose(Consumer<WebSocket> handler) {
5353
listeners.remove(EventType.CLOSE, handler);
5454
}
5555

@@ -212,7 +212,7 @@ void handleEvent(String event, JsonObject parameters) {
212212
}
213213
case "close": {
214214
isClosed = true;
215-
listeners.notify(EventType.CLOSE, null);
215+
listeners.notify(EventType.CLOSE, this);
216216
break;
217217
}
218218
default: {

playwright/src/test/java/com/microsoft/playwright/TestDefaultBrowserContext2.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ void shouldHandleException() {
223223
void shouldFireCloseEventForAPersistentContext() {
224224
launchPersistent();
225225
boolean[] closed = {false};
226-
persistentContext.onClose(() -> closed[0] = true);
226+
persistentContext.onClose(context -> closed[0] = true);
227227
closePersistentContext();
228228
assertTrue(closed[0]);
229229
}

0 commit comments

Comments
 (0)