Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(435)

Unified Diff: third_party/WebKit/LayoutTests/inspector-protocol/resources/inspector-protocol-test.js

Issue 2951913002: [DevTools] Support multiple sessions in Target domain (Closed)
Patch Set: simplify Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/inspector-protocol/resources/inspector-protocol-test.js
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/resources/inspector-protocol-test.js b/third_party/WebKit/LayoutTests/inspector-protocol/resources/inspector-protocol-test.js
index 3c5c850559d06d7bfa813e942d9414f63222a412..d1e2e155b1b24b0ca1603f21436d45271a45fe0e 100644
--- a/third_party/WebKit/LayoutTests/inspector-protocol/resources/inspector-protocol-test.js
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/resources/inspector-protocol-test.js
@@ -167,9 +167,9 @@ TestRunner.Page = class {
}
async createSession() {
- await DevToolsAPI._sendCommandOrDie('Target.attachToTarget', {targetId: this._targetId});
- var session = new TestRunner.Session(this);
- DevToolsAPI._sessions.set(this._targetId, session);
+ var sessionId = (await DevToolsAPI._sendCommandOrDie('Target.attachToTarget', {targetId: this._targetId})).sessionId;
+ var session = new TestRunner.Session(this, sessionId);
+ DevToolsAPI._sessions.set(sessionId, session);
return session;
}
@@ -178,9 +178,6 @@ TestRunner.Page = class {
}
async _navigate(url) {
- if (DevToolsAPI._sessions.get(this._targetId))
- this._testRunner.die(`Cannot navigate to ${url} with active session`, new Error());
-
var session = await this.createSession();
session.protocol.Page.enable();
session.protocol.Page.navigate({url: url});
@@ -197,9 +194,6 @@ TestRunner.Page = class {
}
async loadHTML(html) {
- if (DevToolsAPI._sessions.get(this._targetId))
- this._testRunner.die('Cannot loadHTML with active session', new Error());
-
html = html.replace(/'/g, "\\'").replace(/\n/g, '\\n');
var session = await this.createSession();
await session.protocol.Runtime.evaluate({expression: `document.body.innerHTML='${html}'`});
@@ -208,9 +202,10 @@ TestRunner.Page = class {
};
TestRunner.Session = class {
- constructor(page) {
+ constructor(page, sessionId) {
this._testRunner = page._testRunner;
this._page = page;
+ this._sessionId = sessionId;
this._requestId = 0;
this._dispatchTable = new Map();
this._eventHandlers = new Map();
@@ -218,12 +213,12 @@ TestRunner.Session = class {
}
async disconnect() {
- await DevToolsAPI._sendCommandOrDie('Target.detachFromTarget', {targetId: this._page._targetId});
- DevToolsAPI._sessions.delete(this._page._targetId);
+ await DevToolsAPI._sendCommandOrDie('Target.detachFromTarget', {sessionId: this._sessionId});
+ DevToolsAPI._sessions.delete(this._sessionId);
}
sendRawCommand(requestId, message) {
- DevToolsAPI._sendCommandOrDie('Target.sendMessageToTarget', {targetId: this._page._targetId, message: message});
+ DevToolsAPI._sendCommandOrDie('Target.sendMessageToTarget', {sessionId: this._sessionId, message: message});
return new Promise(f => this._dispatchTable.set(requestId, f));
}
@@ -361,9 +356,9 @@ DevToolsAPI.dispatchMessage = function(messageOrObject) {
} else {
var eventName = messageObject.method;
if (eventName === 'Target.receivedMessageFromTarget') {
- var targetId = messageObject.params.targetId;
+ var sessionId = messageObject.params.sessionId;
var message = messageObject.params.message;
- var session = DevToolsAPI._sessions.get(targetId);
+ var session = DevToolsAPI._sessions.get(sessionId);
if (session)
session._dispatchMessage(JSON.parse(message));
}

Powered by Google App Engine
This is Rietveld 408576698