Skip to content

Commit 20d68b3

Browse files
authored
[java][cdp] Keep track of pinned scripts per CDP session (#11598)
Related to #11573
1 parent 775d6bb commit 20d68b3

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

java/src/org/openqa/selenium/devtools/idealized/Javascript.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.openqa.selenium.devtools.Command;
2121
import org.openqa.selenium.devtools.DevTools;
2222
import org.openqa.selenium.devtools.Event;
23+
import org.openqa.selenium.devtools.idealized.target.model.SessionID;
2324
import org.openqa.selenium.internal.Require;
2425

2526
import java.util.HashMap;
@@ -31,7 +32,7 @@
3132
public abstract class Javascript<SCRIPTID, BINDINGCALLED> {
3233

3334
private final DevTools devtools;
34-
private final Map<String, ScriptId> pinnedScripts = new HashMap<>();
35+
private final Map<SessionID, Map<String, ScriptId>> pinnedScripts = new HashMap<>();
3536
private final Set<String> bindings = new HashSet<>();
3637

3738
public Javascript(DevTools devtools) {
@@ -42,7 +43,8 @@ public void disable() {
4243
devtools.send(disableRuntime());
4344
devtools.send(disablePage());
4445

45-
pinnedScripts.values().forEach(id -> removeScriptToEvaluateOnNewDocument(id.getActualId()));
46+
pinnedScripts.forEach((sessionID, scriptIdMap) -> scriptIdMap.values()
47+
.forEach(id -> removeScriptToEvaluateOnNewDocument(id.getActualId())));
4648

4749
pinnedScripts.clear();
4850
}
@@ -55,8 +57,11 @@ public ScriptId pin(String exposeScriptAs, String script) {
5557
Require.nonNull("Script name", exposeScriptAs);
5658
Require.nonNull("Script", script);
5759

58-
if (pinnedScripts.containsKey(script)) {
59-
return pinnedScripts.get(script);
60+
if (pinnedScripts.containsKey(devtools.getCdpSession())) {
61+
Map<String, ScriptId> scripts = pinnedScripts.get(devtools.getCdpSession());
62+
if (scripts.containsKey(script)) {
63+
return scripts.get(script);
64+
}
6065
}
6166

6267
devtools.send(enableRuntime());
@@ -68,7 +73,9 @@ public ScriptId pin(String exposeScriptAs, String script) {
6873
SCRIPTID id = devtools.send(addScriptToEvaluateOnNewDocument(script));
6974
ScriptId scriptId = new ScriptId(id);
7075

71-
pinnedScripts.put(script, scriptId);
76+
Map<String, ScriptId> scripts = pinnedScripts.getOrDefault(devtools.getCdpSession(), new HashMap<>());
77+
scripts.put(script, scriptId);
78+
pinnedScripts.put(devtools.getCdpSession(), scripts);
7279

7380
return scriptId;
7481
}

0 commit comments

Comments
 (0)