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

Unified Diff: headless/lib/headless_devtools_client_browsertest.cc

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: headless/lib/headless_devtools_client_browsertest.cc
diff --git a/headless/lib/headless_devtools_client_browsertest.cc b/headless/lib/headless_devtools_client_browsertest.cc
index a9305d94d37e09e03b53b6c7aca4b24aad78b85e..8723f890ee6f58678bdaffc27932b00517c20d48 100644
--- a/headless/lib/headless_devtools_client_browsertest.cc
+++ b/headless/lib/headless_devtools_client_browsertest.cc
@@ -678,52 +678,50 @@ class TargetDomainCreateTwoContexts : public HeadlessAsyncDevTooledBrowserTest,
devtools_client_->GetTarget()->GetExperimental()->AttachToTarget(
target::AttachToTargetParams::Builder()
.SetTargetId(page_id_one_)
- .Build(),
- base::Bind(&TargetDomainCreateTwoContexts::OnAttachedToTargetOne,
- base::Unretained(this)));
+ .Build());
devtools_client_->GetTarget()->GetExperimental()->AttachToTarget(
target::AttachToTargetParams::Builder()
.SetTargetId(page_id_two_)
- .Build(),
- base::Bind(&TargetDomainCreateTwoContexts::OnAttachedToTargetTwo,
- base::Unretained(this)));
- }
-
- void OnAttachedToTargetOne(
- std::unique_ptr<target::AttachToTargetResult> result) {
- StopNavigationOnTarget(101, page_id_one_);
+ .Build());
}
- void OnAttachedToTargetTwo(
- std::unique_ptr<target::AttachToTargetResult> result) {
- StopNavigationOnTarget(102, page_id_two_);
+ void OnAttachedToTarget(
+ const target::AttachedToTargetParams& params) override {
+ if (session_id_one_.empty()) {
+ session_id_one_ = params.GetSessionId();
+ StopNavigationOnTarget(101, session_id_one_);
+ } else {
+ EXPECT_TRUE(session_id_two_.empty());
+ session_id_two_ = params.GetSessionId();
+ StopNavigationOnTarget(102, session_id_two_);
+ }
}
- void StopNavigationOnTarget(int message_id, std::string target_id) {
+ void StopNavigationOnTarget(int message_id, std::string session_id) {
// Avoid triggering Page.loadEventFired for about://blank if loading hasn't
// finished yet.
devtools_client_->GetTarget()->GetExperimental()->SendMessageToTarget(
target::SendMessageToTargetParams::Builder()
- .SetTargetId(target_id)
+ .SetSessionId(session_id)
.SetMessage("{\"id\":" + std::to_string(message_id) +
", \"method\": \"Page.stopLoading\"}")
.Build());
}
- void EnablePageOnTarget(int message_id, std::string target_id) {
+ void EnablePageOnTarget(int message_id, std::string session_id) {
devtools_client_->GetTarget()->GetExperimental()->SendMessageToTarget(
target::SendMessageToTargetParams::Builder()
- .SetTargetId(target_id)
+ .SetSessionId(session_id)
.SetMessage("{\"id\":" + std::to_string(message_id) +
", \"method\": \"Page.enable\"}")
.Build());
}
- void NavigateTarget(int message_id, std::string target_id) {
+ void NavigateTarget(int message_id, std::string session_id) {
devtools_client_->GetTarget()->GetExperimental()->SendMessageToTarget(
target::SendMessageToTargetParams::Builder()
- .SetTargetId(target_id)
+ .SetSessionId(session_id)
.SetMessage(
"{\"id\":" + std::to_string(message_id) +
", \"method\": \"Page.navigate\", \"params\": {\"url\": \"" +
@@ -737,7 +735,7 @@ class TargetDomainCreateTwoContexts : public HeadlessAsyncDevTooledBrowserTest,
devtools_client_->GetTarget()->GetExperimental()->SendMessageToTarget(
target::SendMessageToTargetParams::Builder()
- .SetTargetId(page_id_one_)
+ .SetSessionId(session_id_one_)
.SetMessage("{\"id\":401, \"method\": \"Runtime.evaluate\", "
"\"params\": {\"expression\": "
"\"document.cookie = 'foo=bar';\"}}")
@@ -756,9 +754,9 @@ class TargetDomainCreateTwoContexts : public HeadlessAsyncDevTooledBrowserTest,
std::string method;
if (message_dict->GetString("method", &method) &&
method == "Page.loadEventFired") {
- if (params.GetTargetId() == page_id_one_) {
+ if (params.GetSessionId() == session_id_one_) {
page_one_loaded_ = true;
- } else if (params.GetTargetId() == page_id_two_) {
+ } else if (params.GetSessionId() == session_id_two_) {
page_two_loaded_ = true;
}
MaybeSetCookieOnPageOne();
@@ -772,36 +770,36 @@ class TargetDomainCreateTwoContexts : public HeadlessAsyncDevTooledBrowserTest,
if (message_dict->GetDictionary("result", &result_dict)) {
if (message_id == 101) {
// 101: Page.stopNavigation on target one.
- EXPECT_EQ(page_id_one_, params.GetTargetId());
- EnablePageOnTarget(201, page_id_one_);
+ EXPECT_EQ(session_id_one_, params.GetSessionId());
+ EnablePageOnTarget(201, session_id_one_);
} else if (message_id == 102) {
// 102: Page.stopNavigation on target two.
- EXPECT_EQ(page_id_two_, params.GetTargetId());
- EnablePageOnTarget(202, page_id_two_);
+ EXPECT_EQ(session_id_two_, params.GetSessionId());
+ EnablePageOnTarget(202, session_id_two_);
} else if (message_id == 201) {
// 201: Page.enable on target one.
- EXPECT_EQ(page_id_one_, params.GetTargetId());
- NavigateTarget(301, page_id_one_);
+ EXPECT_EQ(session_id_one_, params.GetSessionId());
+ NavigateTarget(301, session_id_one_);
} else if (message_id == 202) {
// 202: Page.enable on target two.
- EXPECT_EQ(page_id_two_, params.GetTargetId());
- NavigateTarget(302, page_id_two_);
+ EXPECT_EQ(session_id_two_, params.GetSessionId());
+ NavigateTarget(302, session_id_two_);
} else if (message_id == 401) {
// 401: Runtime.evaluate on target one.
- EXPECT_EQ(page_id_one_, params.GetTargetId());
+ EXPECT_EQ(session_id_one_, params.GetSessionId());
// TODO(alexclarke): Make some better bindings
// for Target.SendMessageToTarget.
devtools_client_->GetTarget()->GetExperimental()->SendMessageToTarget(
target::SendMessageToTargetParams::Builder()
- .SetTargetId(page_id_two_)
+ .SetSessionId(session_id_two_)
.SetMessage("{\"id\":402, \"method\": \"Runtime.evaluate\", "
"\"params\": {\"expression\": "
"\"document.cookie;\"}}")
.Build());
} else if (message_id == 402) {
// 402: Runtime.evaluate on target two.
- EXPECT_EQ(page_id_two_, params.GetTargetId());
+ EXPECT_EQ(session_id_two_, params.GetSessionId());
// There's a nested result. We want the inner one.
EXPECT_TRUE(result_dict->GetDictionary("result", &result_dict));
@@ -864,6 +862,8 @@ class TargetDomainCreateTwoContexts : public HeadlessAsyncDevTooledBrowserTest,
std::string context_id_two_;
std::string page_id_one_;
std::string page_id_two_;
+ std::string session_id_one_;
+ std::string session_id_two_;
bool page_one_loaded_ = false;
bool page_two_loaded_ = false;
int page_close_count_ = 0;

Powered by Google App Engine
This is Rietveld 408576698