From 3604aab710c688596c71bda7e934a4830387717e Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Fri, 24 Jun 2022 16:25:58 -0700 Subject: [PATCH] chore: store LocalUtils on Connection (#963) --- .../com/microsoft/playwright/impl/BrowserContextImpl.java | 2 +- .../java/com/microsoft/playwright/impl/BrowserImpl.java | 2 -- .../com/microsoft/playwright/impl/BrowserTypeImpl.java | 4 ---- .../java/com/microsoft/playwright/impl/Connection.java | 8 +++++++- .../main/java/com/microsoft/playwright/impl/PageImpl.java | 2 +- .../java/com/microsoft/playwright/impl/TracingImpl.java | 3 +-- 6 files changed, 10 insertions(+), 11 deletions(-) diff --git a/playwright/src/main/java/com/microsoft/playwright/impl/BrowserContextImpl.java b/playwright/src/main/java/com/microsoft/playwright/impl/BrowserContextImpl.java index 939beef3..73a1fb2a 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/BrowserContextImpl.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/BrowserContextImpl.java @@ -352,7 +352,7 @@ class BrowserContextImpl extends ChannelOwner implements BrowserContext { options = new RouteFromHAROptions(); } UrlMatcher matcher = UrlMatcher.forOneOf(baseUrl, options.url); - HARRouter harRouter = new HARRouter(browser.localUtils, har, options.notFound); + HARRouter harRouter = new HARRouter(connection.localUtils, har, options.notFound); onClose(context -> harRouter.dispose()); route(matcher, route -> harRouter.handle(route), null); } diff --git a/playwright/src/main/java/com/microsoft/playwright/impl/BrowserImpl.java b/playwright/src/main/java/com/microsoft/playwright/impl/BrowserImpl.java index 039c9033..46910562 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/BrowserImpl.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/BrowserImpl.java @@ -40,7 +40,6 @@ class BrowserImpl extends ChannelOwner implements Browser { boolean isRemote; boolean isConnectedOverWebSocket; private boolean isConnected = true; - LocalUtils localUtils; BrowserTypeImpl browserType; enum EventType { @@ -212,7 +211,6 @@ class BrowserImpl extends ChannelOwner implements Browser { context.setBaseUrl(options.baseURL); } context.recordHarPath = recordHarPath; - context.tracing().localUtils = localUtils; contexts.add(context); return context; } diff --git a/playwright/src/main/java/com/microsoft/playwright/impl/BrowserTypeImpl.java b/playwright/src/main/java/com/microsoft/playwright/impl/BrowserTypeImpl.java index f0ec99f6..370f7d8d 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/BrowserTypeImpl.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/BrowserTypeImpl.java @@ -48,7 +48,6 @@ class BrowserTypeImpl extends ChannelOwner implements BrowserType { JsonObject params = gson().toJsonTree(options).getAsJsonObject(); JsonElement result = sendMessage("launch", params); BrowserImpl browser = connection.getExistingObject(result.getAsJsonObject().getAsJsonObject("browser").get("guid").getAsString()); - browser.localUtils = localUtils; browser.browserType = this; return browser; } @@ -97,7 +96,6 @@ class BrowserTypeImpl extends ChannelOwner implements BrowserType { BrowserImpl browser = connection.getExistingObject(playwright.initializer.getAsJsonObject("preLaunchedBrowser").get("guid").getAsString()); browser.isRemote = true; browser.isConnectedOverWebSocket = true; - browser.localUtils = localUtils; browser.browserType = this; Consumer connectionCloseListener = t -> browser.notifyRemoteClosed(); pipe.onClose(connectionCloseListener); @@ -132,7 +130,6 @@ class BrowserTypeImpl extends ChannelOwner implements BrowserType { BrowserImpl browser = connection.getExistingObject(json.getAsJsonObject("browser").get("guid").getAsString()); browser.isRemote = true; - browser.localUtils = localUtils; browser.browserType = this; if (json.has("defaultContext")) { String contextId = json.getAsJsonObject("defaultContext").get("guid").getAsString(); @@ -199,7 +196,6 @@ class BrowserTypeImpl extends ChannelOwner implements BrowserType { context.setBaseUrl(options.baseURL); } context.recordHarPath = options.recordHarPath; - context.tracing().localUtils = localUtils; return context; } diff --git a/playwright/src/main/java/com/microsoft/playwright/impl/Connection.java b/playwright/src/main/java/com/microsoft/playwright/impl/Connection.java index 4dd2bfad..4008b979 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/Connection.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/Connection.java @@ -64,6 +64,7 @@ public class Connection { String debug = System.getenv("DEBUG"); isLogging = (debug != null) && debug.contains("pw:channel"); } + LocalUtils localUtils; class Root extends ChannelOwner { Root(Connection connection) { @@ -138,6 +139,10 @@ public class Connection { return (PlaywrightImpl) this.root.initialize(); } + LocalUtils localUtils() { + return localUtils; + } + public T getExistingObject(String guid) { @SuppressWarnings("unchecked") T result = (T) objects.get(guid); if (result == null) @@ -270,7 +275,8 @@ public class Connection { result = new JsonPipe(parent, type, guid, initializer); break; case "LocalUtils": - result = new LocalUtils(parent, type, guid, initializer); + localUtils = new LocalUtils(parent, type, guid, initializer); + result = localUtils; break; case "Page": result = new PageImpl(parent, type, guid, initializer); diff --git a/playwright/src/main/java/com/microsoft/playwright/impl/PageImpl.java b/playwright/src/main/java/com/microsoft/playwright/impl/PageImpl.java index e1e352e8..0f11373f 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/PageImpl.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/PageImpl.java @@ -975,7 +975,7 @@ public class PageImpl extends ChannelOwner implements Page { options = new RouteFromHAROptions(); } UrlMatcher matcher = UrlMatcher.forOneOf(browserContext.baseUrl, options.url); - HARRouter harRouter = new HARRouter(browserContext.browser().localUtils, har, options.notFound); + HARRouter harRouter = new HARRouter(connection.localUtils, har, options.notFound); onClose(context -> harRouter.dispose()); route(matcher, route -> harRouter.handle(route), null); } diff --git a/playwright/src/main/java/com/microsoft/playwright/impl/TracingImpl.java b/playwright/src/main/java/com/microsoft/playwright/impl/TracingImpl.java index 0369e475..1ae109db 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/TracingImpl.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/TracingImpl.java @@ -26,7 +26,6 @@ import java.nio.file.Path; import static com.microsoft.playwright.impl.Serialization.gson; class TracingImpl extends ChannelOwner implements Tracing { - LocalUtils localUtils; boolean isRemote; TracingImpl(ChannelOwner parent, String type, String guid, JsonObject initializer) { @@ -60,7 +59,7 @@ class TracingImpl extends ChannelOwner implements Tracing { // Add local sources to the remote trace if necessary. if (isRemote && json.has("sourceEntries")) { JsonArray entries = json.getAsJsonArray("sourceEntries"); - localUtils.zip(path, entries); + connection.localUtils.zip(path, entries); } }