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

Side by Side Diff: headless/lib/headless_devtools_client_browsertest.cc

Issue 2436763003: [DevTools] Remove Browser domain, switch clients to Target. (Closed)
Patch Set: include, rebase Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <memory> 5 #include <memory>
6 6
7 #include "base/json/json_reader.h" 7 #include "base/json/json_reader.h"
8 #include "content/public/browser/render_widget_host_view.h" 8 #include "content/public/browser/render_widget_host_view.h"
9 #include "content/public/browser/web_contents.h" 9 #include "content/public/browser/web_contents.h"
10 #include "content/public/test/browser_test.h" 10 #include "content/public/test/browser_test.h"
11 #include "headless/lib/browser/headless_web_contents_impl.h" 11 #include "headless/lib/browser/headless_web_contents_impl.h"
12 #include "headless/public/domains/browser.h"
13 #include "headless/public/domains/emulation.h" 12 #include "headless/public/domains/emulation.h"
14 #include "headless/public/domains/network.h" 13 #include "headless/public/domains/network.h"
15 #include "headless/public/domains/page.h" 14 #include "headless/public/domains/page.h"
16 #include "headless/public/domains/runtime.h" 15 #include "headless/public/domains/runtime.h"
16 #include "headless/public/domains/target.h"
17 #include "headless/public/headless_browser.h" 17 #include "headless/public/headless_browser.h"
18 #include "headless/public/headless_devtools_client.h" 18 #include "headless/public/headless_devtools_client.h"
19 #include "headless/public/headless_devtools_target.h" 19 #include "headless/public/headless_devtools_target.h"
20 #include "headless/test/headless_browser_test.h" 20 #include "headless/test/headless_browser_test.h"
21 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
22 #include "url/gurl.h" 22 #include "url/gurl.h"
23 23
24 #define EXPECT_SIZE_EQ(expected, actual) \ 24 #define EXPECT_SIZE_EQ(expected, actual) \
25 do { \ 25 do { \
26 EXPECT_EQ((expected).width(), (actual).width()); \ 26 EXPECT_EQ((expected).width(), (actual).width()); \
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 page::ReloadParams::Builder().Build(), 211 page::ReloadParams::Builder().Build(),
212 base::Bind(&HeadlessDevToolsClientExperimentalTest::OnReloadStarted, 212 base::Bind(&HeadlessDevToolsClientExperimentalTest::OnReloadStarted,
213 base::Unretained(this))); 213 base::Unretained(this)));
214 } 214 }
215 215
216 void OnReloadStarted() { FinishAsynchronousTest(); } 216 void OnReloadStarted() { FinishAsynchronousTest(); }
217 }; 217 };
218 218
219 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsClientExperimentalTest); 219 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsClientExperimentalTest);
220 220
221 class BrowserDomainCreateAndDeletePageTest 221 class TargetDomainCreateAndDeletePageTest
222 : public HeadlessAsyncDevTooledBrowserTest { 222 : public HeadlessAsyncDevTooledBrowserTest {
223 void RunDevTooledTest() override { 223 void RunDevTooledTest() override {
224 EXPECT_TRUE(embedded_test_server()->Start()); 224 EXPECT_TRUE(embedded_test_server()->Start());
225 225
226 EXPECT_EQ(1u, GetAllWebContents(browser()).size()); 226 EXPECT_EQ(1u, GetAllWebContents(browser()).size());
227 227
228 devtools_client_->GetBrowser()->GetExperimental()->CreateTarget( 228 devtools_client_->GetTarget()->GetExperimental()->CreateTarget(
229 browser::CreateTargetParams::Builder() 229 target::CreateTargetParams::Builder()
230 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec()) 230 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec())
231 .SetWidth(1) 231 .SetWidth(1)
232 .SetHeight(1) 232 .SetHeight(1)
233 .Build(), 233 .Build(),
234 base::Bind(&BrowserDomainCreateAndDeletePageTest::OnCreateTargetResult, 234 base::Bind(&TargetDomainCreateAndDeletePageTest::OnCreateTargetResult,
235 base::Unretained(this))); 235 base::Unretained(this)));
236 } 236 }
237 237
238 void OnCreateTargetResult( 238 void OnCreateTargetResult(
239 std::unique_ptr<browser::CreateTargetResult> result) { 239 std::unique_ptr<target::CreateTargetResult> result) {
240 EXPECT_EQ(2u, GetAllWebContents(browser()).size()); 240 EXPECT_EQ(2u, GetAllWebContents(browser()).size());
241 241
242 HeadlessWebContentsImpl* contents = HeadlessWebContentsImpl::From( 242 HeadlessWebContentsImpl* contents = HeadlessWebContentsImpl::From(
243 browser()->GetWebContentsForDevToolsAgentHostId(result->GetTargetId())); 243 browser()->GetWebContentsForDevToolsAgentHostId(result->GetTargetId()));
244 EXPECT_SIZE_EQ(gfx::Size(1, 1), contents->web_contents() 244 EXPECT_SIZE_EQ(gfx::Size(1, 1), contents->web_contents()
245 ->GetRenderWidgetHostView() 245 ->GetRenderWidgetHostView()
246 ->GetViewBounds() 246 ->GetViewBounds()
247 .size()); 247 .size());
248 248
249 devtools_client_->GetBrowser()->GetExperimental()->CloseTarget( 249 devtools_client_->GetTarget()->GetExperimental()->CloseTarget(
250 browser::CloseTargetParams::Builder() 250 target::CloseTargetParams::Builder()
251 .SetTargetId(result->GetTargetId()) 251 .SetTargetId(result->GetTargetId())
252 .Build(), 252 .Build(),
253 base::Bind(&BrowserDomainCreateAndDeletePageTest::OnCloseTargetResult, 253 base::Bind(&TargetDomainCreateAndDeletePageTest::OnCloseTargetResult,
254 base::Unretained(this))); 254 base::Unretained(this)));
255 } 255 }
256 256
257 void OnCloseTargetResult(std::unique_ptr<browser::CloseTargetResult> result) { 257 void OnCloseTargetResult(std::unique_ptr<target::CloseTargetResult> result) {
258 EXPECT_TRUE(result->GetSuccess()); 258 EXPECT_TRUE(result->GetSuccess());
259 EXPECT_EQ(1u, GetAllWebContents(browser()).size()); 259 EXPECT_EQ(1u, GetAllWebContents(browser()).size());
260 FinishAsynchronousTest(); 260 FinishAsynchronousTest();
261 } 261 }
262 }; 262 };
263 263
264 HEADLESS_ASYNC_DEVTOOLED_TEST_F(BrowserDomainCreateAndDeletePageTest); 264 HEADLESS_ASYNC_DEVTOOLED_TEST_F(TargetDomainCreateAndDeletePageTest);
265 265
266 class BrowserDomainCreateAndDeleteBrowserContextTest 266 class TargetDomainCreateAndDeleteBrowserContextTest
267 : public HeadlessAsyncDevTooledBrowserTest { 267 : public HeadlessAsyncDevTooledBrowserTest {
268 void RunDevTooledTest() override { 268 void RunDevTooledTest() override {
269 EXPECT_TRUE(embedded_test_server()->Start()); 269 EXPECT_TRUE(embedded_test_server()->Start());
270 270
271 EXPECT_EQ(1u, GetAllWebContents(browser()).size()); 271 EXPECT_EQ(1u, GetAllWebContents(browser()).size());
272 272
273 devtools_client_->GetBrowser()->GetExperimental()->CreateBrowserContext( 273 devtools_client_->GetTarget()->GetExperimental()->CreateBrowserContext(
274 browser::CreateBrowserContextParams::Builder().Build(), 274 target::CreateBrowserContextParams::Builder().Build(),
275 base::Bind(&BrowserDomainCreateAndDeleteBrowserContextTest:: 275 base::Bind(&TargetDomainCreateAndDeleteBrowserContextTest::
276 OnCreateContextResult, 276 OnCreateContextResult,
277 base::Unretained(this))); 277 base::Unretained(this)));
278 } 278 }
279 279
280 void OnCreateContextResult( 280 void OnCreateContextResult(
281 std::unique_ptr<browser::CreateBrowserContextResult> result) { 281 std::unique_ptr<target::CreateBrowserContextResult> result) {
282 browser_context_id_ = result->GetBrowserContextId(); 282 browser_context_id_ = result->GetBrowserContextId();
283 283
284 devtools_client_->GetBrowser()->GetExperimental()->CreateTarget( 284 devtools_client_->GetTarget()->GetExperimental()->CreateTarget(
285 browser::CreateTargetParams::Builder() 285 target::CreateTargetParams::Builder()
286 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec()) 286 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec())
287 .SetBrowserContextId(result->GetBrowserContextId()) 287 .SetBrowserContextId(result->GetBrowserContextId())
288 .SetWidth(1) 288 .SetWidth(1)
289 .SetHeight(1) 289 .SetHeight(1)
290 .Build(), 290 .Build(),
291 base::Bind(&BrowserDomainCreateAndDeleteBrowserContextTest:: 291 base::Bind(&TargetDomainCreateAndDeleteBrowserContextTest::
292 OnCreateTargetResult, 292 OnCreateTargetResult,
293 base::Unretained(this))); 293 base::Unretained(this)));
294 } 294 }
295 295
296 void OnCreateTargetResult( 296 void OnCreateTargetResult(
297 std::unique_ptr<browser::CreateTargetResult> result) { 297 std::unique_ptr<target::CreateTargetResult> result) {
298 EXPECT_EQ(2u, GetAllWebContents(browser()).size()); 298 EXPECT_EQ(2u, GetAllWebContents(browser()).size());
299 299
300 devtools_client_->GetBrowser()->GetExperimental()->CloseTarget( 300 devtools_client_->GetTarget()->GetExperimental()->CloseTarget(
301 browser::CloseTargetParams::Builder() 301 target::CloseTargetParams::Builder()
302 .SetTargetId(result->GetTargetId()) 302 .SetTargetId(result->GetTargetId())
303 .Build(), 303 .Build(),
304 base::Bind(&BrowserDomainCreateAndDeleteBrowserContextTest:: 304 base::Bind(&TargetDomainCreateAndDeleteBrowserContextTest::
305 OnCloseTargetResult, 305 OnCloseTargetResult,
306 base::Unretained(this))); 306 base::Unretained(this)));
307 } 307 }
308 308
309 void OnCloseTargetResult(std::unique_ptr<browser::CloseTargetResult> result) { 309 void OnCloseTargetResult(std::unique_ptr<target::CloseTargetResult> result) {
310 EXPECT_EQ(1u, GetAllWebContents(browser()).size()); 310 EXPECT_EQ(1u, GetAllWebContents(browser()).size());
311 EXPECT_TRUE(result->GetSuccess()); 311 EXPECT_TRUE(result->GetSuccess());
312 312
313 devtools_client_->GetBrowser()->GetExperimental()->DisposeBrowserContext( 313 devtools_client_->GetTarget()->GetExperimental()->DisposeBrowserContext(
314 browser::DisposeBrowserContextParams::Builder() 314 target::DisposeBrowserContextParams::Builder()
315 .SetBrowserContextId(browser_context_id_) 315 .SetBrowserContextId(browser_context_id_)
316 .Build(), 316 .Build(),
317 base::Bind(&BrowserDomainCreateAndDeleteBrowserContextTest:: 317 base::Bind(&TargetDomainCreateAndDeleteBrowserContextTest::
318 OnDisposeBrowserContextResult, 318 OnDisposeBrowserContextResult,
319 base::Unretained(this))); 319 base::Unretained(this)));
320 } 320 }
321 321
322 void OnDisposeBrowserContextResult( 322 void OnDisposeBrowserContextResult(
323 std::unique_ptr<browser::DisposeBrowserContextResult> result) { 323 std::unique_ptr<target::DisposeBrowserContextResult> result) {
324 EXPECT_TRUE(result->GetSuccess()); 324 EXPECT_TRUE(result->GetSuccess());
325 FinishAsynchronousTest(); 325 FinishAsynchronousTest();
326 } 326 }
327 327
328 private: 328 private:
329 std::string browser_context_id_; 329 std::string browser_context_id_;
330 }; 330 };
331 331
332 HEADLESS_ASYNC_DEVTOOLED_TEST_F(BrowserDomainCreateAndDeleteBrowserContextTest); 332 HEADLESS_ASYNC_DEVTOOLED_TEST_F(TargetDomainCreateAndDeleteBrowserContextTest);
333 333
334 class BrowserDomainDisposeContextFailsIfInUse 334 class TargetDomainDisposeContextFailsIfInUse
335 : public HeadlessAsyncDevTooledBrowserTest { 335 : public HeadlessAsyncDevTooledBrowserTest {
336 void RunDevTooledTest() override { 336 void RunDevTooledTest() override {
337 EXPECT_TRUE(embedded_test_server()->Start()); 337 EXPECT_TRUE(embedded_test_server()->Start());
338 338
339 EXPECT_EQ(1u, GetAllWebContents(browser()).size()); 339 EXPECT_EQ(1u, GetAllWebContents(browser()).size());
340 devtools_client_->GetBrowser()->GetExperimental()->CreateBrowserContext( 340 devtools_client_->GetTarget()->GetExperimental()->CreateBrowserContext(
341 browser::CreateBrowserContextParams::Builder().Build(), 341 target::CreateBrowserContextParams::Builder().Build(),
342 base::Bind(&BrowserDomainDisposeContextFailsIfInUse::OnContextCreated, 342 base::Bind(&TargetDomainDisposeContextFailsIfInUse::OnContextCreated,
343 base::Unretained(this))); 343 base::Unretained(this)));
344 } 344 }
345 345
346 void OnContextCreated( 346 void OnContextCreated(
347 std::unique_ptr<browser::CreateBrowserContextResult> result) { 347 std::unique_ptr<target::CreateBrowserContextResult> result) {
348 context_id_ = result->GetBrowserContextId(); 348 context_id_ = result->GetBrowserContextId();
349 349
350 devtools_client_->GetBrowser()->GetExperimental()->CreateTarget( 350 devtools_client_->GetTarget()->GetExperimental()->CreateTarget(
351 browser::CreateTargetParams::Builder() 351 target::CreateTargetParams::Builder()
352 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec()) 352 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec())
353 .SetBrowserContextId(context_id_) 353 .SetBrowserContextId(context_id_)
354 .Build(), 354 .Build(),
355 base::Bind( 355 base::Bind(
356 &BrowserDomainDisposeContextFailsIfInUse::OnCreateTargetResult, 356 &TargetDomainDisposeContextFailsIfInUse::OnCreateTargetResult,
357 base::Unretained(this))); 357 base::Unretained(this)));
358 } 358 }
359 359
360 void OnCreateTargetResult( 360 void OnCreateTargetResult(
361 std::unique_ptr<browser::CreateTargetResult> result) { 361 std::unique_ptr<target::CreateTargetResult> result) {
362 page_id_ = result->GetTargetId(); 362 page_id_ = result->GetTargetId();
363 363
364 devtools_client_->GetBrowser()->GetExperimental()->DisposeBrowserContext( 364 devtools_client_->GetTarget()->GetExperimental()->DisposeBrowserContext(
365 browser::DisposeBrowserContextParams::Builder() 365 target::DisposeBrowserContextParams::Builder()
366 .SetBrowserContextId(context_id_) 366 .SetBrowserContextId(context_id_)
367 .Build(), 367 .Build(),
368 base::Bind(&BrowserDomainDisposeContextFailsIfInUse:: 368 base::Bind(&TargetDomainDisposeContextFailsIfInUse::
369 OnDisposeBrowserContextResult, 369 OnDisposeBrowserContextResult,
370 base::Unretained(this))); 370 base::Unretained(this)));
371 } 371 }
372 372
373 void OnDisposeBrowserContextResult( 373 void OnDisposeBrowserContextResult(
374 std::unique_ptr<browser::DisposeBrowserContextResult> result) { 374 std::unique_ptr<target::DisposeBrowserContextResult> result) {
375 EXPECT_FALSE(result->GetSuccess()); 375 EXPECT_FALSE(result->GetSuccess());
376 376
377 // Close the page and try again. 377 // Close the page and try again.
378 devtools_client_->GetBrowser()->GetExperimental()->CloseTarget( 378 devtools_client_->GetTarget()->GetExperimental()->CloseTarget(
379 browser::CloseTargetParams::Builder().SetTargetId(page_id_).Build(), 379 target::CloseTargetParams::Builder().SetTargetId(page_id_).Build(),
380 base::Bind( 380 base::Bind(
381 &BrowserDomainDisposeContextFailsIfInUse::OnCloseTargetResult, 381 &TargetDomainDisposeContextFailsIfInUse::OnCloseTargetResult,
382 base::Unretained(this))); 382 base::Unretained(this)));
383 } 383 }
384 384
385 void OnCloseTargetResult(std::unique_ptr<browser::CloseTargetResult> result) { 385 void OnCloseTargetResult(std::unique_ptr<target::CloseTargetResult> result) {
386 EXPECT_TRUE(result->GetSuccess()); 386 EXPECT_TRUE(result->GetSuccess());
387 387
388 devtools_client_->GetBrowser()->GetExperimental()->DisposeBrowserContext( 388 devtools_client_->GetTarget()->GetExperimental()->DisposeBrowserContext(
389 browser::DisposeBrowserContextParams::Builder() 389 target::DisposeBrowserContextParams::Builder()
390 .SetBrowserContextId(context_id_) 390 .SetBrowserContextId(context_id_)
391 .Build(), 391 .Build(),
392 base::Bind(&BrowserDomainDisposeContextFailsIfInUse:: 392 base::Bind(&TargetDomainDisposeContextFailsIfInUse::
393 OnDisposeBrowserContextResult2, 393 OnDisposeBrowserContextResult2,
394 base::Unretained(this))); 394 base::Unretained(this)));
395 } 395 }
396 396
397 void OnDisposeBrowserContextResult2( 397 void OnDisposeBrowserContextResult2(
398 std::unique_ptr<browser::DisposeBrowserContextResult> result) { 398 std::unique_ptr<target::DisposeBrowserContextResult> result) {
399 EXPECT_TRUE(result->GetSuccess()); 399 EXPECT_TRUE(result->GetSuccess());
400 FinishAsynchronousTest(); 400 FinishAsynchronousTest();
401 } 401 }
402 402
403 private: 403 private:
404 std::string context_id_; 404 std::string context_id_;
405 std::string page_id_; 405 std::string page_id_;
406 }; 406 };
407 407
408 HEADLESS_ASYNC_DEVTOOLED_TEST_F(BrowserDomainDisposeContextFailsIfInUse); 408 HEADLESS_ASYNC_DEVTOOLED_TEST_F(TargetDomainDisposeContextFailsIfInUse);
409 409
410 class BrowserDomainCreateTwoContexts : public HeadlessAsyncDevTooledBrowserTest, 410 class TargetDomainCreateTwoContexts : public HeadlessAsyncDevTooledBrowserTest,
411 public browser::ExperimentalObserver { 411 public target::ExperimentalObserver {
412 public: 412 public:
413 void RunDevTooledTest() override { 413 void RunDevTooledTest() override {
414 EXPECT_TRUE(embedded_test_server()->Start()); 414 EXPECT_TRUE(embedded_test_server()->Start());
415 415
416 devtools_client_->GetBrowser()->GetExperimental()->AddObserver(this); 416 devtools_client_->GetTarget()->GetExperimental()->AddObserver(this);
417 devtools_client_->GetBrowser()->GetExperimental()->CreateBrowserContext( 417 devtools_client_->GetTarget()->GetExperimental()->CreateBrowserContext(
418 browser::CreateBrowserContextParams::Builder().Build(), 418 target::CreateBrowserContextParams::Builder().Build(),
419 base::Bind(&BrowserDomainCreateTwoContexts::OnContextOneCreated, 419 base::Bind(&TargetDomainCreateTwoContexts::OnContextOneCreated,
420 base::Unretained(this))); 420 base::Unretained(this)));
421 421
422 devtools_client_->GetBrowser()->GetExperimental()->CreateBrowserContext( 422 devtools_client_->GetTarget()->GetExperimental()->CreateBrowserContext(
423 browser::CreateBrowserContextParams::Builder().Build(), 423 target::CreateBrowserContextParams::Builder().Build(),
424 base::Bind(&BrowserDomainCreateTwoContexts::OnContextTwoCreated, 424 base::Bind(&TargetDomainCreateTwoContexts::OnContextTwoCreated,
425 base::Unretained(this))); 425 base::Unretained(this)));
426 } 426 }
427 427
428 void OnContextOneCreated( 428 void OnContextOneCreated(
429 std::unique_ptr<browser::CreateBrowserContextResult> result) { 429 std::unique_ptr<target::CreateBrowserContextResult> result) {
430 context_id_one_ = result->GetBrowserContextId(); 430 context_id_one_ = result->GetBrowserContextId();
431 MaybeCreatePages(); 431 MaybeCreatePages();
432 } 432 }
433 433
434 void OnContextTwoCreated( 434 void OnContextTwoCreated(
435 std::unique_ptr<browser::CreateBrowserContextResult> result) { 435 std::unique_ptr<target::CreateBrowserContextResult> result) {
436 context_id_two_ = result->GetBrowserContextId(); 436 context_id_two_ = result->GetBrowserContextId();
437 MaybeCreatePages(); 437 MaybeCreatePages();
438 } 438 }
439 439
440 void MaybeCreatePages() { 440 void MaybeCreatePages() {
441 if (context_id_one_.empty() || context_id_two_.empty()) 441 if (context_id_one_.empty() || context_id_two_.empty())
442 return; 442 return;
443 443
444 devtools_client_->GetBrowser()->GetExperimental()->CreateTarget( 444 devtools_client_->GetTarget()->GetExperimental()->CreateTarget(
445 browser::CreateTargetParams::Builder() 445 target::CreateTargetParams::Builder()
446 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec()) 446 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec())
447 .SetBrowserContextId(context_id_one_) 447 .SetBrowserContextId(context_id_one_)
448 .Build(), 448 .Build(),
449 base::Bind(&BrowserDomainCreateTwoContexts::OnCreateTargetOneResult, 449 base::Bind(&TargetDomainCreateTwoContexts::OnCreateTargetOneResult,
450 base::Unretained(this))); 450 base::Unretained(this)));
451 451
452 devtools_client_->GetBrowser()->GetExperimental()->CreateTarget( 452 devtools_client_->GetTarget()->GetExperimental()->CreateTarget(
453 browser::CreateTargetParams::Builder() 453 target::CreateTargetParams::Builder()
454 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec()) 454 .SetUrl(embedded_test_server()->GetURL("/hello.html").spec())
455 .SetBrowserContextId(context_id_two_) 455 .SetBrowserContextId(context_id_two_)
456 .Build(), 456 .Build(),
457 base::Bind(&BrowserDomainCreateTwoContexts::OnCreateTargetTwoResult, 457 base::Bind(&TargetDomainCreateTwoContexts::OnCreateTargetTwoResult,
458 base::Unretained(this))); 458 base::Unretained(this)));
459 } 459 }
460 460
461 void OnCreateTargetOneResult( 461 void OnCreateTargetOneResult(
462 std::unique_ptr<browser::CreateTargetResult> result) { 462 std::unique_ptr<target::CreateTargetResult> result) {
463 page_id_one_ = result->GetTargetId(); 463 page_id_one_ = result->GetTargetId();
464 MaybeTestIsolation(); 464 MaybeTestIsolation();
465 } 465 }
466 466
467 void OnCreateTargetTwoResult( 467 void OnCreateTargetTwoResult(
468 std::unique_ptr<browser::CreateTargetResult> result) { 468 std::unique_ptr<target::CreateTargetResult> result) {
469 page_id_two_ = result->GetTargetId(); 469 page_id_two_ = result->GetTargetId();
470 MaybeTestIsolation(); 470 MaybeTestIsolation();
471 } 471 }
472 472
473 void MaybeTestIsolation() { 473 void MaybeTestIsolation() {
474 if (page_id_one_.empty() || page_id_two_.empty()) 474 if (page_id_one_.empty() || page_id_two_.empty())
475 return; 475 return;
476 476
477 devtools_client_->GetBrowser()->GetExperimental()->Attach( 477 devtools_client_->GetTarget()->GetExperimental()->AttachToTarget(
478 browser::AttachParams::Builder().SetTargetId(page_id_one_).Build(), 478 target::AttachToTargetParams::Builder()
479 base::Bind(&BrowserDomainCreateTwoContexts::OnAttachedOne, 479 .SetTargetId(page_id_one_)
480 .Build(),
481 base::Bind(&TargetDomainCreateTwoContexts::OnAttachedToTargetOne,
480 base::Unretained(this))); 482 base::Unretained(this)));
481 483
482 devtools_client_->GetBrowser()->GetExperimental()->Attach( 484 devtools_client_->GetTarget()->GetExperimental()->AttachToTarget(
483 browser::AttachParams::Builder().SetTargetId(page_id_two_).Build(), 485 target::AttachToTargetParams::Builder()
484 base::Bind(&BrowserDomainCreateTwoContexts::OnAttachedTwo, 486 .SetTargetId(page_id_two_)
487 .Build(),
488 base::Bind(&TargetDomainCreateTwoContexts::OnAttachedToTargetTwo,
485 base::Unretained(this))); 489 base::Unretained(this)));
486 } 490 }
487 491
488 void OnAttachedOne(std::unique_ptr<browser::AttachResult> result) { 492 void OnAttachedToTargetOne(
489 devtools_client_->GetBrowser()->GetExperimental()->SendMessage( 493 std::unique_ptr<target::AttachToTargetResult> result) {
490 browser::SendMessageParams::Builder() 494 devtools_client_->GetTarget()->GetExperimental()->SendMessageToTarget(
495 target::SendMessageToTargetParams::Builder()
491 .SetTargetId(page_id_one_) 496 .SetTargetId(page_id_one_)
492 .SetMessage("{\"id\":101, \"method\": \"Page.enable\"}") 497 .SetMessage("{\"id\":101, \"method\": \"Page.enable\"}")
493 .Build()); 498 .Build());
494 } 499 }
495 500
496 void OnAttachedTwo(std::unique_ptr<browser::AttachResult> result) { 501 void OnAttachedToTargetTwo(
497 devtools_client_->GetBrowser()->GetExperimental()->SendMessage( 502 std::unique_ptr<target::AttachToTargetResult> result) {
498 browser::SendMessageParams::Builder() 503 devtools_client_->GetTarget()->GetExperimental()->SendMessageToTarget(
504 target::SendMessageToTargetParams::Builder()
499 .SetTargetId(page_id_two_) 505 .SetTargetId(page_id_two_)
500 .SetMessage("{\"id\":102, \"method\": \"Page.enable\"}") 506 .SetMessage("{\"id\":102, \"method\": \"Page.enable\"}")
501 .Build()); 507 .Build());
502 } 508 }
503 509
504 void MaybeSetCookieOnPageOne() { 510 void MaybeSetCookieOnPageOne() {
505 if (!page_one_loaded_ || !page_two_loaded_) 511 if (!page_one_loaded_ || !page_two_loaded_)
506 return; 512 return;
507 513
508 devtools_client_->GetBrowser()->GetExperimental()->SendMessage( 514 devtools_client_->GetTarget()->GetExperimental()->SendMessageToTarget(
509 browser::SendMessageParams::Builder() 515 target::SendMessageToTargetParams::Builder()
510 .SetTargetId(page_id_one_) 516 .SetTargetId(page_id_one_)
511 .SetMessage("{\"id\":201, \"method\": \"Runtime.evaluate\", " 517 .SetMessage("{\"id\":201, \"method\": \"Runtime.evaluate\", "
512 "\"params\": {\"expression\": " 518 "\"params\": {\"expression\": "
513 "\"document.cookie = 'foo=bar';\"}}") 519 "\"document.cookie = 'foo=bar';\"}}")
514 .Build()); 520 .Build());
515 } 521 }
516 522
517 void OnDispatchMessage( 523 void OnReceivedMessageFromTarget(
518 const browser::DispatchMessageParams& params) override { 524 const target::ReceivedMessageFromTargetParams& params) override {
519 std::unique_ptr<base::Value> message = 525 std::unique_ptr<base::Value> message =
520 base::JSONReader::Read(params.GetMessage(), base::JSON_PARSE_RFC); 526 base::JSONReader::Read(params.GetMessage(), base::JSON_PARSE_RFC);
521 const base::DictionaryValue* message_dict; 527 const base::DictionaryValue* message_dict;
522 if (!message || !message->GetAsDictionary(&message_dict)) { 528 if (!message || !message->GetAsDictionary(&message_dict)) {
523 return; 529 return;
524 } 530 }
525 std::string method; 531 std::string method;
526 if (message_dict->GetString("method", &method) && 532 if (message_dict->GetString("method", &method) &&
527 method == "Page.loadEventFired") { 533 method == "Page.loadEventFired") {
528 if (params.GetTargetId() == page_id_one_) { 534 if (params.GetTargetId() == page_id_one_) {
529 page_one_loaded_ = true; 535 page_one_loaded_ = true;
530 } else if (params.GetTargetId() == page_id_two_) { 536 } else if (params.GetTargetId() == page_id_two_) {
531 page_two_loaded_ = true; 537 page_two_loaded_ = true;
532 } 538 }
533 MaybeSetCookieOnPageOne(); 539 MaybeSetCookieOnPageOne();
534 return; 540 return;
535 } 541 }
536 const base::DictionaryValue* result_dict; 542 const base::DictionaryValue* result_dict;
537 if (message_dict->GetDictionary("result", &result_dict)) { 543 if (message_dict->GetDictionary("result", &result_dict)) {
538 // There's a nested result. We want the inner one. 544 // There's a nested result. We want the inner one.
539 if (!result_dict->GetDictionary("result", &result_dict)) 545 if (!result_dict->GetDictionary("result", &result_dict))
540 return; 546 return;
541 std::string value; 547 std::string value;
542 if (params.GetTargetId() == page_id_one_) { 548 if (params.GetTargetId() == page_id_one_) {
543 // TODO(alexclarke): Make some better bindings for Browser.sendMessage. 549 // TODO(alexclarke): Make some better bindings
544 devtools_client_->GetBrowser()->GetExperimental()->SendMessage( 550 // for Target.SendMessageToTarget.
545 browser::SendMessageParams::Builder() 551 devtools_client_->GetTarget()->GetExperimental()->SendMessageToTarget(
552 target::SendMessageToTargetParams::Builder()
546 .SetTargetId(page_id_two_) 553 .SetTargetId(page_id_two_)
547 .SetMessage("{\"id\":202, \"method\": \"Runtime.evaluate\", " 554 .SetMessage("{\"id\":202, \"method\": \"Runtime.evaluate\", "
548 "\"params\": {\"expression\": " 555 "\"params\": {\"expression\": "
549 "\"document.cookie;\"}}") 556 "\"document.cookie;\"}}")
550 .Build()); 557 .Build());
551 } else if (params.GetTargetId() == page_id_two_ && 558 } else if (params.GetTargetId() == page_id_two_ &&
552 result_dict->GetString("value", &value)) { 559 result_dict->GetString("value", &value)) {
553 EXPECT_EQ("", value) << "Page 2 should not share cookies from page one"; 560 EXPECT_EQ("", value) << "Page 2 should not share cookies from page one";
554 561
555 devtools_client_->GetBrowser()->GetExperimental()->CloseTarget( 562 devtools_client_->GetTarget()->GetExperimental()->CloseTarget(
556 browser::CloseTargetParams::Builder() 563 target::CloseTargetParams::Builder()
557 .SetTargetId(page_id_one_) 564 .SetTargetId(page_id_one_)
558 .Build(), 565 .Build(),
559 base::Bind(&BrowserDomainCreateTwoContexts::OnCloseTarget, 566 base::Bind(&TargetDomainCreateTwoContexts::OnCloseTarget,
560 base::Unretained(this))); 567 base::Unretained(this)));
561 568
562 devtools_client_->GetBrowser()->GetExperimental()->CloseTarget( 569 devtools_client_->GetTarget()->GetExperimental()->CloseTarget(
563 browser::CloseTargetParams::Builder() 570 target::CloseTargetParams::Builder()
564 .SetTargetId(page_id_two_) 571 .SetTargetId(page_id_two_)
565 .Build(), 572 .Build(),
566 base::Bind(&BrowserDomainCreateTwoContexts::OnCloseTarget, 573 base::Bind(&TargetDomainCreateTwoContexts::OnCloseTarget,
567 base::Unretained(this))); 574 base::Unretained(this)));
568 575
569 devtools_client_->GetBrowser()->GetExperimental()->RemoveObserver(this); 576 devtools_client_->GetTarget()->GetExperimental()->RemoveObserver(this);
570 } 577 }
571 } 578 }
572 } 579 }
573 580
574 void OnCloseTarget(std::unique_ptr<browser::CloseTargetResult> result) { 581 void OnCloseTarget(std::unique_ptr<target::CloseTargetResult> result) {
575 page_close_count_++; 582 page_close_count_++;
576 583
577 if (page_close_count_ < 2) 584 if (page_close_count_ < 2)
578 return; 585 return;
579 586
580 devtools_client_->GetBrowser()->GetExperimental()->DisposeBrowserContext( 587 devtools_client_->GetTarget()->GetExperimental()->DisposeBrowserContext(
581 browser::DisposeBrowserContextParams::Builder() 588 target::DisposeBrowserContextParams::Builder()
582 .SetBrowserContextId(context_id_one_) 589 .SetBrowserContextId(context_id_one_)
583 .Build(), 590 .Build(),
584 base::Bind(&BrowserDomainCreateTwoContexts::OnCloseContext, 591 base::Bind(&TargetDomainCreateTwoContexts::OnCloseContext,
585 base::Unretained(this))); 592 base::Unretained(this)));
586 593
587 devtools_client_->GetBrowser()->GetExperimental()->DisposeBrowserContext( 594 devtools_client_->GetTarget()->GetExperimental()->DisposeBrowserContext(
588 browser::DisposeBrowserContextParams::Builder() 595 target::DisposeBrowserContextParams::Builder()
589 .SetBrowserContextId(context_id_two_) 596 .SetBrowserContextId(context_id_two_)
590 .Build(), 597 .Build(),
591 base::Bind(&BrowserDomainCreateTwoContexts::OnCloseContext, 598 base::Bind(&TargetDomainCreateTwoContexts::OnCloseContext,
592 base::Unretained(this))); 599 base::Unretained(this)));
593 } 600 }
594 601
595 void OnCloseContext( 602 void OnCloseContext(
596 std::unique_ptr<browser::DisposeBrowserContextResult> result) { 603 std::unique_ptr<target::DisposeBrowserContextResult> result) {
597 EXPECT_TRUE(result->GetSuccess()); 604 EXPECT_TRUE(result->GetSuccess());
598 if (++context_closed_count_ < 2) 605 if (++context_closed_count_ < 2)
599 return; 606 return;
600 607
601 FinishAsynchronousTest(); 608 FinishAsynchronousTest();
602 } 609 }
603 610
604 private: 611 private:
605 std::string context_id_one_; 612 std::string context_id_one_;
606 std::string context_id_two_; 613 std::string context_id_two_;
607 std::string page_id_one_; 614 std::string page_id_one_;
608 std::string page_id_two_; 615 std::string page_id_two_;
609 bool page_one_loaded_ = false; 616 bool page_one_loaded_ = false;
610 bool page_two_loaded_ = false; 617 bool page_two_loaded_ = false;
611 int page_close_count_ = 0; 618 int page_close_count_ = 0;
612 int context_closed_count_ = 0; 619 int context_closed_count_ = 0;
613 }; 620 };
614 621
615 HEADLESS_ASYNC_DEVTOOLED_TEST_F(BrowserDomainCreateTwoContexts); 622 HEADLESS_ASYNC_DEVTOOLED_TEST_F(TargetDomainCreateTwoContexts);
616 623
617 class HeadlessDevToolsNavigationControlTest 624 class HeadlessDevToolsNavigationControlTest
618 : public HeadlessAsyncDevTooledBrowserTest, 625 : public HeadlessAsyncDevTooledBrowserTest,
619 page::ExperimentalObserver { 626 page::ExperimentalObserver {
620 public: 627 public:
621 void RunDevTooledTest() override { 628 void RunDevTooledTest() override {
622 EXPECT_TRUE(embedded_test_server()->Start()); 629 EXPECT_TRUE(embedded_test_server()->Start());
623 devtools_client_->GetPage()->GetExperimental()->AddObserver(this); 630 devtools_client_->GetPage()->GetExperimental()->AddObserver(this);
624 devtools_client_->GetPage()->Enable(); 631 devtools_client_->GetPage()->Enable();
625 devtools_client_->GetPage()->GetExperimental()->SetControlNavigations( 632 devtools_client_->GetPage()->GetExperimental()->SetControlNavigations(
(...skipping 21 matching lines...) Expand all
647 FinishAsynchronousTest(); 654 FinishAsynchronousTest();
648 } 655 }
649 656
650 private: 657 private:
651 bool navigation_requested_ = false; 658 bool navigation_requested_ = false;
652 }; 659 };
653 660
654 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsNavigationControlTest); 661 HEADLESS_ASYNC_DEVTOOLED_TEST_F(HeadlessDevToolsNavigationControlTest);
655 662
656 } // namespace headless 663 } // namespace headless
OLDNEW
« no previous file with comments | « headless/lib/browser/headless_devtools_manager_delegate.cc ('k') | headless/public/headless_devtools_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698