From eddcb0011c0d3f3dfbf88320a6523392ddae7f9f Mon Sep 17 00:00:00 2001 From: Neyberson Date: Fri, 4 Oct 2024 09:28:05 -0500 Subject: [PATCH 1/7] Use DevtoolsProtocolError in target.py:close_session() --- devtools/target.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devtools/target.py b/devtools/target.py index 9e55c491..8607b9a4 100644 --- a/devtools/target.py +++ b/devtools/target.py @@ -59,8 +59,8 @@ async def close_session(self, session_id): ) self.remove_session(session_id) if "error" in response: - raise RuntimeError("Could not close session") from Exception( - response["error"] + raise RuntimeError("Could not close session") from DevtoolsProtocolError( + response ) print(f"The session {session_id} has been closed", file=sys.stderr) return response From 52b2ab1e1364a373e57a839b929dfcdc9abb9252 Mon Sep 17 00:00:00 2001 From: Neyberson Date: Fri, 4 Oct 2024 09:34:25 -0500 Subject: [PATCH 2/7] Use DevtoolsProtocolError in browser.py:create_tab() --- devtools/browser.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/devtools/browser.py b/devtools/browser.py index 11903f85..02ede2ae 100644 --- a/devtools/browser.py +++ b/devtools/browser.py @@ -401,7 +401,9 @@ async def create_tab(self, url="", width=None, height=None): response = await self.browser.send_command("Target.createTarget", params=params) if "error" in response: - raise RuntimeError("Could not create tab") from Exception(response["error"]) + raise RuntimeError("Could not create tab") from DevtoolsProtocolError( + response + ) target_id = response["result"]["targetId"] new_tab = Tab(target_id, self) self._add_tab(new_tab) From e466f5798da0674e8ff15e24662f95453bf0a003 Mon Sep 17 00:00:00 2001 From: Neyberson Date: Fri, 4 Oct 2024 09:35:52 -0500 Subject: [PATCH 3/7] Use DevtoolsProtocolError in browser.py:close_tab() --- devtools/browser.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/devtools/browser.py b/devtools/browser.py index 02ede2ae..6f0df9f4 100644 --- a/devtools/browser.py +++ b/devtools/browser.py @@ -425,7 +425,9 @@ async def close_tab(self, target_id): ) self._remove_tab(target_id) if "error" in response: - raise RuntimeError("Could not close tab") from Exception(response["error"]) + raise RuntimeError("Could not close tab") from DevtoolsProtocolError( + response + ) return response async def create_session(self): From da67fc216b6a88f27f3bfac15a9f48c7a75284c7 Mon Sep 17 00:00:00 2001 From: Neyberson Date: Fri, 4 Oct 2024 09:37:12 -0500 Subject: [PATCH 4/7] Use DevtoolsProtocolError in browser.py:create_session() --- devtools/browser.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/devtools/browser.py b/devtools/browser.py index 6f0df9f4..6b631587 100644 --- a/devtools/browser.py +++ b/devtools/browser.py @@ -440,8 +440,8 @@ async def create_session(self): ) response = await self.browser.send_command("Target.attachToBrowserTarget") if "error" in response: - raise RuntimeError("Could not create session") from Exception( - response["error"] + raise RuntimeError("Could not create session") from DevtoolsProtocolError( + response ) session_id = response["result"]["sessionId"] new_session = Session(self, session_id) From 007bd0eb2e1eb0c0600dbd6f847cc7d18a1ce9f0 Mon Sep 17 00:00:00 2001 From: Neyberson Date: Fri, 4 Oct 2024 09:59:03 -0500 Subject: [PATCH 5/7] Use DevtoolsProtocolError in browser.py:run_read_loop() --- devtools/browser.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devtools/browser.py b/devtools/browser.py index 6b631587..5639d55b 100644 --- a/devtools/browser.py +++ b/devtools/browser.py @@ -520,7 +520,7 @@ async def read_loop(): error = self.protocol.get_error(response) key = self.protocol.calculate_key(response) if not self.protocol.has_id(response) and error: - raise RuntimeError(error) + raise DevtoolsProtocolError(response) elif self.protocol.is_event(response): ### INFORMATION WE NEED FOR EVERY EVENT event_session_id = response.get("sessionId", "") # GET THE SESSION THAT THE EVENT CAME IN ON From e51cfd87488b93bc533611f6ad0351522af9506c Mon Sep 17 00:00:00 2001 From: Neyberson Date: Fri, 4 Oct 2024 10:01:37 -0500 Subject: [PATCH 6/7] Rename add_session() to _add_session() --- devtools/browser.py | 4 ++-- devtools/target.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/devtools/browser.py b/devtools/browser.py index 5639d55b..41000e5f 100644 --- a/devtools/browser.py +++ b/devtools/browser.py @@ -126,7 +126,7 @@ def __init__( # Initializing super().__init__("0", self) # NOTE: 0 can't really be used externally - self.add_session(Session(self, "")) + self._add_session(Session(self, "")) if not self.loop: self._open() @@ -445,7 +445,7 @@ async def create_session(self): ) session_id = response["result"]["sessionId"] new_session = Session(self, session_id) - self.add_session(new_session) + self._add_session(new_session) return new_session async def populate_targets(self): diff --git a/devtools/target.py b/devtools/target.py index 8607b9a4..7e6ba1a4 100644 --- a/devtools/target.py +++ b/devtools/target.py @@ -17,7 +17,7 @@ def __init__(self, target_id, browser): self.sessions = OrderedDict() self.target_id = target_id - def add_session(self, session): + def _add_session(self, session): if not isinstance(session, Session): raise TypeError("session must be an object of class Session") self.sessions[session.session_id] = session @@ -43,7 +43,7 @@ async def create_session(self): ) session_id = response["result"]["sessionId"] new_session = Session(self.browser, session_id) - self.add_session(new_session) + self._add_session(new_session) return new_session async def close_session(self, session_id): From 045947a5920df431e36e6085cd7e81da16344d87 Mon Sep 17 00:00:00 2001 From: Neyberson Date: Fri, 4 Oct 2024 10:04:17 -0500 Subject: [PATCH 7/7] Rename remove_session() to _remove_session() --- devtools/browser.py | 2 +- devtools/target.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/devtools/browser.py b/devtools/browser.py index 41000e5f..039d0771 100644 --- a/devtools/browser.py +++ b/devtools/browser.py @@ -567,7 +567,7 @@ async def read_loop(): if session_closed == "": continue # not actually possible to close browser session this way... target_closed = self._get_target_for_session(session_closed) if target_closed: - target_closed.remove_session(session_closed) + target_closed._remove_session(session_closed) _ = self.protocol.sessions.pop(session_closed, None) if self.debug: print( diff --git a/devtools/target.py b/devtools/target.py index 7e6ba1a4..617e8782 100644 --- a/devtools/target.py +++ b/devtools/target.py @@ -23,7 +23,7 @@ def _add_session(self, session): self.sessions[session.session_id] = session self.browser.protocol.sessions[session.session_id] = session - def remove_session(self, session_id): + def _remove_session(self, session_id): if isinstance(session_id, Session): session_id = session_id.session_id _ = self.sessions.pop(session_id, None) @@ -57,7 +57,7 @@ async def close_session(self, session_id): command="Target.detachFromTarget", params={"sessionId": session_id}, ) - self.remove_session(session_id) + self._remove_session(session_id) if "error" in response: raise RuntimeError("Could not close session") from DevtoolsProtocolError( response