cdp-tunnel 1.0.5 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -156,17 +156,24 @@ importScripts('features/automation-badge.js');
|
|
|
156
156
|
var openerTabId = tab.openerTabId;
|
|
157
157
|
var isOpenerControlled = openerTabId && State.isTabAttached(openerTabId);
|
|
158
158
|
|
|
159
|
-
|
|
160
|
-
|
|
159
|
+
// 修改逻辑:只要有 opener,就尝试处理(不管 opener 是否被控制)
|
|
160
|
+
// 因为 Playwright 创建的页面 opener 可能没有被扩展识别
|
|
161
|
+
if (!openerTabId) {
|
|
162
|
+
Logger.info('[Tabs] Tab has no opener, skipping. tabId:', tabId);
|
|
161
163
|
return;
|
|
162
164
|
}
|
|
163
165
|
|
|
164
|
-
Logger.info('[Tabs] Tab has
|
|
166
|
+
Logger.info('[Tabs] Tab has opener:', openerTabId, ', controlled:', isOpenerControlled, ', will attach');
|
|
165
167
|
|
|
166
168
|
LocalHandler.getTargetInfoById(String(tabId)).then(function(targetInfo) {
|
|
167
|
-
|
|
169
|
+
Logger.info('[Tabs] getTargetInfoById result:', targetInfo ? targetInfo.targetId : 'null');
|
|
170
|
+
if (!targetInfo) {
|
|
171
|
+
Logger.error('[Tabs] getTargetInfoById returned null for tabId:', tabId);
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
168
174
|
|
|
169
175
|
var targetId = targetInfo.targetId;
|
|
176
|
+
Logger.info('[Tabs] targetId:', targetId);
|
|
170
177
|
|
|
171
178
|
if (State.hasEmittedTarget(targetId)) {
|
|
172
179
|
Logger.info('[Tabs] Target already emitted, skipping:', targetId);
|
|
@@ -174,23 +181,35 @@ importScripts('features/automation-badge.js');
|
|
|
174
181
|
}
|
|
175
182
|
|
|
176
183
|
State.addEmittedTarget(targetId);
|
|
184
|
+
Logger.info('[Tabs] Sending Target.targetCreated event');
|
|
177
185
|
|
|
178
186
|
EventBuilder.send('Target.targetCreated', { targetInfo: targetInfo });
|
|
187
|
+
Logger.info('[Tabs] Target.targetCreated sent, now attaching to tab:', tabId);
|
|
179
188
|
|
|
180
189
|
return DebuggerManager.attach(tabId).then(function(attached) {
|
|
181
|
-
|
|
190
|
+
Logger.info('[Tabs] DebuggerManager.attach result:', attached);
|
|
191
|
+
if (!attached) {
|
|
192
|
+
Logger.error('[Tabs] Failed to attach to tab:', tabId);
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
182
195
|
|
|
183
196
|
var sessionId = CDPUtils.generateSessionId();
|
|
184
197
|
State.mapSession(sessionId, tabId, targetId);
|
|
185
198
|
|
|
186
199
|
AutomationBadge.inject(tabId);
|
|
200
|
+
Logger.info('[Tabs] Sending Target.attachedToTarget event');
|
|
187
201
|
|
|
188
202
|
EventBuilder.send('Target.attachedToTarget', {
|
|
189
203
|
sessionId: sessionId,
|
|
190
204
|
targetInfo: targetInfo,
|
|
191
205
|
waitingForDebugger: false
|
|
192
206
|
});
|
|
207
|
+
Logger.info('[Tabs] Target.attachedToTarget sent');
|
|
208
|
+
}).catch(function(err) {
|
|
209
|
+
Logger.error('[Tabs] DebuggerManager.attach error:', err);
|
|
193
210
|
});
|
|
211
|
+
}).catch(function(err) {
|
|
212
|
+
Logger.error('[Tabs] getTargetInfoById error:', err);
|
|
194
213
|
});
|
|
195
214
|
});
|
|
196
215
|
|
|
@@ -52,8 +52,9 @@ var WebSocketManager = (function() {
|
|
|
52
52
|
|
|
53
53
|
function send(message) {
|
|
54
54
|
var ws = State.getWs();
|
|
55
|
+
var wsState = ws ? ws.readyState : 'no ws';
|
|
55
56
|
if (!ws || ws.readyState !== WebSocket.OPEN) {
|
|
56
|
-
Logger.warn('[WS] Cannot send, WebSocket not open');
|
|
57
|
+
Logger.warn('[WS] Cannot send, WebSocket not open. State:', wsState);
|
|
57
58
|
return false;
|
|
58
59
|
}
|
|
59
60
|
|