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

Side by Side Diff: third_party/WebKit/Source/web/tests/WebFrameTest.cpp

Issue 2923053002: Move MainWorldScriptContext accessor/method from WebFrame to WebLocalFrame. (Closed)
Patch Set: . 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 TEST_P(ParameterizedWebFrameTest, FrameForEnteredContext) { 395 TEST_P(ParameterizedWebFrameTest, FrameForEnteredContext) {
396 RegisterMockedHttpURLLoad("iframes_test.html"); 396 RegisterMockedHttpURLLoad("iframes_test.html");
397 RegisterMockedHttpURLLoad("visible_iframe.html"); 397 RegisterMockedHttpURLLoad("visible_iframe.html");
398 RegisterMockedHttpURLLoad("invisible_iframe.html"); 398 RegisterMockedHttpURLLoad("invisible_iframe.html");
399 RegisterMockedHttpURLLoad("zero_sized_iframe.html"); 399 RegisterMockedHttpURLLoad("zero_sized_iframe.html");
400 400
401 FrameTestHelpers::WebViewHelper web_view_helper; 401 FrameTestHelpers::WebViewHelper web_view_helper;
402 web_view_helper.InitializeAndLoad(base_url_ + "iframes_test.html", true); 402 web_view_helper.InitializeAndLoad(base_url_ + "iframes_test.html", true);
403 403
404 v8::HandleScope scope(v8::Isolate::GetCurrent()); 404 v8::HandleScope scope(v8::Isolate::GetCurrent());
405 EXPECT_EQ( 405 EXPECT_EQ(web_view_helper.WebView()->MainFrame(),
406 web_view_helper.WebView()->MainFrame(), 406 WebLocalFrame::FrameForContext(web_view_helper.WebView()
407 WebLocalFrame::FrameForContext( 407 ->MainFrameImpl()
408 web_view_helper.WebView()->MainFrame()->MainWorldScriptContext())); 408 ->MainWorldScriptContext()));
409 EXPECT_EQ(web_view_helper.WebView()->MainFrame()->FirstChild(), 409 EXPECT_EQ(web_view_helper.WebView()->MainFrame()->FirstChild(),
410 WebLocalFrame::FrameForContext(web_view_helper.WebView() 410 WebLocalFrame::FrameForContext(web_view_helper.WebView()
411 ->MainFrame() 411 ->MainFrame()
412 ->FirstChild() 412 ->FirstChild()
413 ->ToWebLocalFrame()
413 ->MainWorldScriptContext())); 414 ->MainWorldScriptContext()));
414 } 415 }
415 416
416 class ScriptExecutionCallbackHelper : public WebScriptExecutionCallback { 417 class ScriptExecutionCallbackHelper : public WebScriptExecutionCallback {
417 public: 418 public:
418 explicit ScriptExecutionCallbackHelper(v8::Local<v8::Context> context) 419 explicit ScriptExecutionCallbackHelper(v8::Local<v8::Context> context)
419 : did_complete_(false), bool_value_(false), context_(context) {} 420 : did_complete_(false), bool_value_(false), context_(context) {}
420 ~ScriptExecutionCallbackHelper() {} 421 ~ScriptExecutionCallbackHelper() {}
421 422
422 bool DidComplete() const { return did_complete_; } 423 bool DidComplete() const { return did_complete_; }
(...skipping 20 matching lines...) Expand all
443 }; 444 };
444 445
445 TEST_P(ParameterizedWebFrameTest, RequestExecuteScript) { 446 TEST_P(ParameterizedWebFrameTest, RequestExecuteScript) {
446 RegisterMockedHttpURLLoad("foo.html"); 447 RegisterMockedHttpURLLoad("foo.html");
447 448
448 FrameTestHelpers::WebViewHelper web_view_helper; 449 FrameTestHelpers::WebViewHelper web_view_helper;
449 web_view_helper.InitializeAndLoad(base_url_ + "foo.html", true); 450 web_view_helper.InitializeAndLoad(base_url_ + "foo.html", true);
450 451
451 v8::HandleScope scope(v8::Isolate::GetCurrent()); 452 v8::HandleScope scope(v8::Isolate::GetCurrent());
452 ScriptExecutionCallbackHelper callback_helper( 453 ScriptExecutionCallbackHelper callback_helper(
453 web_view_helper.WebView()->MainFrame()->MainWorldScriptContext()); 454 web_view_helper.WebView()->MainFrameImpl()->MainWorldScriptContext());
454 web_view_helper.WebView() 455 web_view_helper.WebView()
455 ->MainFrameImpl() 456 ->MainFrameImpl()
456 ->RequestExecuteScriptAndReturnValue( 457 ->RequestExecuteScriptAndReturnValue(
457 WebScriptSource(WebString("'hello';")), false, &callback_helper); 458 WebScriptSource(WebString("'hello';")), false, &callback_helper);
458 RunPendingTasks(); 459 RunPendingTasks();
459 EXPECT_TRUE(callback_helper.DidComplete()); 460 EXPECT_TRUE(callback_helper.DidComplete());
460 EXPECT_EQ("hello", callback_helper.StringValue()); 461 EXPECT_EQ("hello", callback_helper.StringValue());
461 } 462 }
462 463
463 TEST_P(ParameterizedWebFrameTest, SuspendedRequestExecuteScript) { 464 TEST_P(ParameterizedWebFrameTest, SuspendedRequestExecuteScript) {
464 RegisterMockedHttpURLLoad("foo.html"); 465 RegisterMockedHttpURLLoad("foo.html");
465 RegisterMockedHttpURLLoad("bar.html"); 466 RegisterMockedHttpURLLoad("bar.html");
466 467
467 FrameTestHelpers::WebViewHelper web_view_helper; 468 FrameTestHelpers::WebViewHelper web_view_helper;
468 web_view_helper.InitializeAndLoad(base_url_ + "foo.html", true); 469 web_view_helper.InitializeAndLoad(base_url_ + "foo.html", true);
469 470
470 v8::HandleScope scope(v8::Isolate::GetCurrent()); 471 v8::HandleScope scope(v8::Isolate::GetCurrent());
471 ScriptExecutionCallbackHelper callback_helper( 472 ScriptExecutionCallbackHelper callback_helper(
472 web_view_helper.WebView()->MainFrame()->MainWorldScriptContext()); 473 web_view_helper.WebView()->MainFrameImpl()->MainWorldScriptContext());
473 474
474 // Suspend scheduled tasks so the script doesn't run. 475 // Suspend scheduled tasks so the script doesn't run.
475 web_view_helper.WebView() 476 web_view_helper.WebView()
476 ->MainFrameImpl() 477 ->MainFrameImpl()
477 ->GetFrame() 478 ->GetFrame()
478 ->GetDocument() 479 ->GetDocument()
479 ->SuspendScheduledTasks(); 480 ->SuspendScheduledTasks();
480 web_view_helper.WebView() 481 web_view_helper.WebView()
481 ->MainFrameImpl() 482 ->MainFrameImpl()
482 ->RequestExecuteScriptAndReturnValue( 483 ->RequestExecuteScriptAndReturnValue(
(...skipping 14 matching lines...) Expand all
497 498
498 FrameTestHelpers::WebViewHelper web_view_helper; 499 FrameTestHelpers::WebViewHelper web_view_helper;
499 web_view_helper.InitializeAndLoad(base_url_ + "foo.html", true); 500 web_view_helper.InitializeAndLoad(base_url_ + "foo.html", true);
500 501
501 auto callback = [](const v8::FunctionCallbackInfo<v8::Value>& info) { 502 auto callback = [](const v8::FunctionCallbackInfo<v8::Value>& info) {
502 info.GetReturnValue().Set(V8String(info.GetIsolate(), "hello")); 503 info.GetReturnValue().Set(V8String(info.GetIsolate(), "hello"));
503 }; 504 };
504 505
505 v8::HandleScope scope(v8::Isolate::GetCurrent()); 506 v8::HandleScope scope(v8::Isolate::GetCurrent());
506 v8::Local<v8::Context> context = 507 v8::Local<v8::Context> context =
507 web_view_helper.WebView()->MainFrame()->MainWorldScriptContext(); 508 web_view_helper.WebView()->MainFrameImpl()->MainWorldScriptContext();
508 ScriptExecutionCallbackHelper callback_helper(context); 509 ScriptExecutionCallbackHelper callback_helper(context);
509 v8::Local<v8::Function> function = 510 v8::Local<v8::Function> function =
510 v8::Function::New(context, callback).ToLocalChecked(); 511 v8::Function::New(context, callback).ToLocalChecked();
511 web_view_helper.WebView() 512 web_view_helper.WebView()
512 ->MainFrame() 513 ->MainFrame()
513 ->ToWebLocalFrame() 514 ->ToWebLocalFrame()
514 ->RequestExecuteV8Function(context, function, 515 ->RequestExecuteV8Function(context, function,
515 v8::Undefined(context->GetIsolate()), 0, 516 v8::Undefined(context->GetIsolate()), 0,
516 nullptr, &callback_helper); 517 nullptr, &callback_helper);
517 RunPendingTasks(); 518 RunPendingTasks();
518 EXPECT_TRUE(callback_helper.DidComplete()); 519 EXPECT_TRUE(callback_helper.DidComplete());
519 EXPECT_EQ("hello", callback_helper.StringValue()); 520 EXPECT_EQ("hello", callback_helper.StringValue());
520 } 521 }
521 522
522 TEST_P(ParameterizedWebFrameTest, RequestExecuteV8FunctionWhileSuspended) { 523 TEST_P(ParameterizedWebFrameTest, RequestExecuteV8FunctionWhileSuspended) {
523 RegisterMockedHttpURLLoad("foo.html"); 524 RegisterMockedHttpURLLoad("foo.html");
524 525
525 FrameTestHelpers::WebViewHelper web_view_helper; 526 FrameTestHelpers::WebViewHelper web_view_helper;
526 web_view_helper.InitializeAndLoad(base_url_ + "foo.html", true); 527 web_view_helper.InitializeAndLoad(base_url_ + "foo.html", true);
527 528
528 auto callback = [](const v8::FunctionCallbackInfo<v8::Value>& info) { 529 auto callback = [](const v8::FunctionCallbackInfo<v8::Value>& info) {
529 info.GetReturnValue().Set(V8String(info.GetIsolate(), "hello")); 530 info.GetReturnValue().Set(V8String(info.GetIsolate(), "hello"));
530 }; 531 };
531 532
532 v8::HandleScope scope(v8::Isolate::GetCurrent()); 533 v8::HandleScope scope(v8::Isolate::GetCurrent());
533 v8::Local<v8::Context> context = 534 v8::Local<v8::Context> context =
534 web_view_helper.WebView()->MainFrame()->MainWorldScriptContext(); 535 web_view_helper.WebView()->MainFrameImpl()->MainWorldScriptContext();
535 536
536 // Suspend scheduled tasks so the script doesn't run. 537 // Suspend scheduled tasks so the script doesn't run.
537 WebLocalFrameBase* main_frame = web_view_helper.WebView()->MainFrameImpl(); 538 WebLocalFrameBase* main_frame = web_view_helper.WebView()->MainFrameImpl();
538 main_frame->GetFrame()->GetDocument()->SuspendScheduledTasks(); 539 main_frame->GetFrame()->GetDocument()->SuspendScheduledTasks();
539 540
540 ScriptExecutionCallbackHelper callback_helper(context); 541 ScriptExecutionCallbackHelper callback_helper(context);
541 v8::Local<v8::Function> function = 542 v8::Local<v8::Function> function =
542 v8::Function::New(context, callback).ToLocalChecked(); 543 v8::Function::New(context, callback).ToLocalChecked();
543 main_frame->RequestExecuteV8Function(context, function, 544 main_frame->RequestExecuteV8Function(context, function,
544 v8::Undefined(context->GetIsolate()), 0, 545 v8::Undefined(context->GetIsolate()), 0,
(...skipping 19 matching lines...) Expand all
564 info.GetIsolate(), UserGestureIndicator::ProcessingUserGesture())); 565 info.GetIsolate(), UserGestureIndicator::ProcessingUserGesture()));
565 }; 566 };
566 567
567 // Suspend scheduled tasks so the script doesn't run. 568 // Suspend scheduled tasks so the script doesn't run.
568 WebLocalFrameBase* main_frame = web_view_helper.WebView()->MainFrameImpl(); 569 WebLocalFrameBase* main_frame = web_view_helper.WebView()->MainFrameImpl();
569 Document* document = main_frame->GetFrame()->GetDocument(); 570 Document* document = main_frame->GetFrame()->GetDocument();
570 document->SuspendScheduledTasks(); 571 document->SuspendScheduledTasks();
571 572
572 v8::HandleScope scope(v8::Isolate::GetCurrent()); 573 v8::HandleScope scope(v8::Isolate::GetCurrent());
573 v8::Local<v8::Context> context = 574 v8::Local<v8::Context> context =
574 web_view_helper.WebView()->MainFrame()->MainWorldScriptContext(); 575 web_view_helper.WebView()->MainFrameImpl()->MainWorldScriptContext();
575 576
576 std::unique_ptr<UserGestureIndicator> indicator = 577 std::unique_ptr<UserGestureIndicator> indicator =
577 WTF::WrapUnique(new UserGestureIndicator( 578 WTF::WrapUnique(new UserGestureIndicator(
578 UserGestureToken::Create(document, UserGestureToken::kNewGesture))); 579 UserGestureToken::Create(document, UserGestureToken::kNewGesture)));
579 ScriptExecutionCallbackHelper callback_helper(context); 580 ScriptExecutionCallbackHelper callback_helper(context);
580 v8::Local<v8::Function> function = 581 v8::Local<v8::Function> function =
581 v8::Function::New(context, callback).ToLocalChecked(); 582 v8::Function::New(context, callback).ToLocalChecked();
582 main_frame->RequestExecuteV8Function( 583 main_frame->RequestExecuteV8Function(
583 main_frame->MainWorldScriptContext(), function, 584 main_frame->MainWorldScriptContext(), function,
584 v8::Undefined(context->GetIsolate()), 0, nullptr, &callback_helper); 585 v8::Undefined(context->GetIsolate()), 0, nullptr, &callback_helper);
585 586
586 RunPendingTasks(); 587 RunPendingTasks();
587 EXPECT_FALSE(callback_helper.DidComplete()); 588 EXPECT_FALSE(callback_helper.DidComplete());
588 589
589 main_frame->GetFrame()->GetDocument()->ResumeScheduledTasks(); 590 main_frame->GetFrame()->GetDocument()->ResumeScheduledTasks();
590 RunPendingTasks(); 591 RunPendingTasks();
591 EXPECT_TRUE(callback_helper.DidComplete()); 592 EXPECT_TRUE(callback_helper.DidComplete());
592 EXPECT_EQ(true, callback_helper.BoolValue()); 593 EXPECT_EQ(true, callback_helper.BoolValue());
593 } 594 }
594 595
595 TEST_P(ParameterizedWebFrameTest, IframeScriptRemovesSelf) { 596 TEST_P(ParameterizedWebFrameTest, IframeScriptRemovesSelf) {
596 RegisterMockedHttpURLLoad("single_iframe.html"); 597 RegisterMockedHttpURLLoad("single_iframe.html");
597 RegisterMockedHttpURLLoad("visible_iframe.html"); 598 RegisterMockedHttpURLLoad("visible_iframe.html");
598 599
599 FrameTestHelpers::WebViewHelper web_view_helper; 600 FrameTestHelpers::WebViewHelper web_view_helper;
600 web_view_helper.InitializeAndLoad(base_url_ + "single_iframe.html", true); 601 web_view_helper.InitializeAndLoad(base_url_ + "single_iframe.html", true);
601 602
602 v8::HandleScope scope(v8::Isolate::GetCurrent()); 603 v8::HandleScope scope(v8::Isolate::GetCurrent());
603 ScriptExecutionCallbackHelper callback_helper( 604 ScriptExecutionCallbackHelper callback_helper(
604 web_view_helper.WebView()->MainFrame()->MainWorldScriptContext()); 605 web_view_helper.WebView()->MainFrameImpl()->MainWorldScriptContext());
605 web_view_helper.WebView() 606 web_view_helper.WebView()
606 ->MainFrame() 607 ->MainFrame()
607 ->FirstChild() 608 ->FirstChild()
608 ->ToWebLocalFrame() 609 ->ToWebLocalFrame()
609 ->RequestExecuteScriptAndReturnValue( 610 ->RequestExecuteScriptAndReturnValue(
610 WebScriptSource(WebString( 611 WebScriptSource(WebString(
611 "var iframe = " 612 "var iframe = "
612 "window.top.document.getElementsByTagName('iframe')[0]; " 613 "window.top.document.getElementsByTagName('iframe')[0]; "
613 "window.top.document.body.removeChild(iframe); 'hello';")), 614 "window.top.document.body.removeChild(iframe); 'hello';")),
614 false, &callback_helper); 615 false, &callback_helper);
(...skipping 3949 matching lines...) Expand 10 before | Expand all | Expand 10 after
4564 Vector<std::unique_ptr<ContextLifetimeTestWebFrameClient::Notification>> 4565 Vector<std::unique_ptr<ContextLifetimeTestWebFrameClient::Notification>>
4565 create_notifications; 4566 create_notifications;
4566 Vector<std::unique_ptr<ContextLifetimeTestWebFrameClient::Notification>> 4567 Vector<std::unique_ptr<ContextLifetimeTestWebFrameClient::Notification>>
4567 release_notifications; 4568 release_notifications;
4568 ContextLifetimeTestMainFrameClient web_frame_client(create_notifications, 4569 ContextLifetimeTestMainFrameClient web_frame_client(create_notifications,
4569 release_notifications); 4570 release_notifications);
4570 FrameTestHelpers::WebViewHelper web_view_helper; 4571 FrameTestHelpers::WebViewHelper web_view_helper;
4571 web_view_helper.InitializeAndLoad( 4572 web_view_helper.InitializeAndLoad(
4572 base_url_ + "context_notifications_test.html", true, &web_frame_client); 4573 base_url_ + "context_notifications_test.html", true, &web_frame_client);
4573 4574
4574 WebFrame* main_frame = web_view_helper.WebView()->MainFrame(); 4575 WebLocalFrameBase* main_frame = web_view_helper.WebView()->MainFrameImpl();
4575 WebFrame* child_frame = main_frame->FirstChild(); 4576 WebFrame* child_frame = main_frame->FirstChild();
4576 4577
4577 ASSERT_EQ(2u, create_notifications.size()); 4578 ASSERT_EQ(2u, create_notifications.size());
4578 EXPECT_EQ(0u, release_notifications.size()); 4579 EXPECT_EQ(0u, release_notifications.size());
4579 4580
4580 auto& first_create_notification = create_notifications[0]; 4581 auto& first_create_notification = create_notifications[0];
4581 auto& second_create_notification = create_notifications[1]; 4582 auto& second_create_notification = create_notifications[1];
4582 4583
4583 EXPECT_EQ(main_frame, first_create_notification->frame); 4584 EXPECT_EQ(main_frame, first_create_notification->frame);
4584 EXPECT_EQ(main_frame->MainWorldScriptContext(), 4585 EXPECT_EQ(main_frame->MainWorldScriptContext(),
4585 first_create_notification->context); 4586 first_create_notification->context);
4586 EXPECT_EQ(0, first_create_notification->world_id); 4587 EXPECT_EQ(0, first_create_notification->world_id);
4587 4588
4588 EXPECT_EQ(child_frame, second_create_notification->frame); 4589 EXPECT_EQ(child_frame, second_create_notification->frame);
4589 EXPECT_EQ(child_frame->MainWorldScriptContext(), 4590 EXPECT_EQ(child_frame->ToWebLocalFrame()->MainWorldScriptContext(),
4590 second_create_notification->context); 4591 second_create_notification->context);
4591 EXPECT_EQ(0, second_create_notification->world_id); 4592 EXPECT_EQ(0, second_create_notification->world_id);
4592 4593
4593 // Close the view. We should get two release notifications that are exactly 4594 // Close the view. We should get two release notifications that are exactly
4594 // the same as the create ones, in reverse order. 4595 // the same as the create ones, in reverse order.
4595 web_view_helper.Reset(); 4596 web_view_helper.Reset();
4596 4597
4597 ASSERT_EQ(2u, release_notifications.size()); 4598 ASSERT_EQ(2u, release_notifications.size());
4598 auto& first_release_notification = release_notifications[0]; 4599 auto& first_release_notification = release_notifications[0];
4599 auto& second_release_notification = release_notifications[1]; 4600 auto& second_release_notification = release_notifications[1];
(...skipping 28 matching lines...) Expand all
4628 4629
4629 // The two release notifications we got should be exactly the same as the 4630 // The two release notifications we got should be exactly the same as the
4630 // first two create notifications. 4631 // first two create notifications.
4631 for (size_t i = 0; i < release_notifications.size(); ++i) { 4632 for (size_t i = 0; i < release_notifications.size(); ++i) {
4632 EXPECT_TRUE(release_notifications[i]->Equals( 4633 EXPECT_TRUE(release_notifications[i]->Equals(
4633 create_notifications[create_notifications.size() - 3 - i].get())); 4634 create_notifications[create_notifications.size() - 3 - i].get()));
4634 } 4635 }
4635 4636
4636 // The last two create notifications should be for the current frames and 4637 // The last two create notifications should be for the current frames and
4637 // context. 4638 // context.
4638 WebFrame* main_frame = web_view_helper.WebView()->MainFrame(); 4639 WebLocalFrameBase* main_frame = web_view_helper.WebView()->MainFrameImpl();
4639 WebFrame* child_frame = main_frame->FirstChild(); 4640 WebFrame* child_frame = main_frame->FirstChild();
4640 auto& first_refresh_notification = create_notifications[2]; 4641 auto& first_refresh_notification = create_notifications[2];
4641 auto& second_refresh_notification = create_notifications[3]; 4642 auto& second_refresh_notification = create_notifications[3];
4642 4643
4643 EXPECT_EQ(main_frame, first_refresh_notification->frame); 4644 EXPECT_EQ(main_frame, first_refresh_notification->frame);
4644 EXPECT_EQ(main_frame->MainWorldScriptContext(), 4645 EXPECT_EQ(main_frame->MainWorldScriptContext(),
4645 first_refresh_notification->context); 4646 first_refresh_notification->context);
4646 EXPECT_EQ(0, first_refresh_notification->world_id); 4647 EXPECT_EQ(0, first_refresh_notification->world_id);
4647 4648
4648 EXPECT_EQ(child_frame, second_refresh_notification->frame); 4649 EXPECT_EQ(child_frame, second_refresh_notification->frame);
4649 EXPECT_EQ(child_frame->MainWorldScriptContext(), 4650 EXPECT_EQ(child_frame->ToWebLocalFrame()->MainWorldScriptContext(),
4650 second_refresh_notification->context); 4651 second_refresh_notification->context);
4651 EXPECT_EQ(0, second_refresh_notification->world_id); 4652 EXPECT_EQ(0, second_refresh_notification->world_id);
4652 } 4653 }
4653 4654
4654 TEST_P(ParameterizedWebFrameTest, ContextNotificationsIsolatedWorlds) { 4655 TEST_P(ParameterizedWebFrameTest, ContextNotificationsIsolatedWorlds) {
4655 v8::Isolate* isolate = v8::Isolate::GetCurrent(); 4656 v8::Isolate* isolate = v8::Isolate::GetCurrent();
4656 v8::HandleScope handle_scope(isolate); 4657 v8::HandleScope handle_scope(isolate);
4657 4658
4658 RegisterMockedHttpURLLoad("context_notifications_test.html"); 4659 RegisterMockedHttpURLLoad("context_notifications_test.html");
4659 RegisterMockedHttpURLLoad("context_notifications_test_frame.html"); 4660 RegisterMockedHttpURLLoad("context_notifications_test_frame.html");
(...skipping 18 matching lines...) Expand all
4678 isolated_world_id, &script_source, num_sources); 4679 isolated_world_id, &script_source, num_sources);
4679 4680
4680 // We should now have a new create notification. 4681 // We should now have a new create notification.
4681 ASSERT_EQ(1u, create_notifications.size()); 4682 ASSERT_EQ(1u, create_notifications.size());
4682 auto& notification = create_notifications[0]; 4683 auto& notification = create_notifications[0];
4683 ASSERT_EQ(isolated_world_id, notification->world_id); 4684 ASSERT_EQ(isolated_world_id, notification->world_id);
4684 ASSERT_EQ(web_view_helper.WebView()->MainFrame(), notification->frame); 4685 ASSERT_EQ(web_view_helper.WebView()->MainFrame(), notification->frame);
4685 4686
4686 // We don't have an API to enumarate isolated worlds for a frame, but we can 4687 // We don't have an API to enumarate isolated worlds for a frame, but we can
4687 // at least assert that the context we got is *not* the main world's context. 4688 // at least assert that the context we got is *not* the main world's context.
4688 ASSERT_NE(web_view_helper.WebView()->MainFrame()->MainWorldScriptContext(), 4689 ASSERT_NE(
4689 v8::Local<v8::Context>::New(isolate, notification->context)); 4690 web_view_helper.WebView()->MainFrameImpl()->MainWorldScriptContext(),
4691 v8::Local<v8::Context>::New(isolate, notification->context));
4690 4692
4691 web_view_helper.Reset(); 4693 web_view_helper.Reset();
4692 4694
4693 // We should have gotten three release notifications (one for each of the 4695 // We should have gotten three release notifications (one for each of the
4694 // frames, plus one for the isolated context). 4696 // frames, plus one for the isolated context).
4695 ASSERT_EQ(3u, release_notifications.size()); 4697 ASSERT_EQ(3u, release_notifications.size());
4696 4698
4697 // And one of them should be exactly the same as the create notification for 4699 // And one of them should be exactly the same as the create notification for
4698 // the isolated context. 4700 // the isolated context.
4699 int match_count = 0; 4701 int match_count = 0;
(...skipping 5232 matching lines...) Expand 10 before | Expand all | Expand 10 after
9932 client_.screen_info_.rect = WebRect(0, 0, size.width, size.height); 9934 client_.screen_info_.rect = WebRect(0, 0, size.width, size.height);
9933 client_.screen_info_.available_rect = client_.screen_info_.rect; 9935 client_.screen_info_.available_rect = client_.screen_info_.rect;
9934 web_view_helper_.Resize(size); 9936 web_view_helper_.Resize(size);
9935 EXPECT_EQ(expected_size, DumpSize("test")); 9937 EXPECT_EQ(expected_size, DumpSize("test"));
9936 } 9938 }
9937 9939
9938 String DumpSize(const String& id) { 9940 String DumpSize(const String& id) {
9939 String code = "dumpSize('" + id + "')"; 9941 String code = "dumpSize('" + id + "')";
9940 v8::HandleScope scope(v8::Isolate::GetCurrent()); 9942 v8::HandleScope scope(v8::Isolate::GetCurrent());
9941 ScriptExecutionCallbackHelper callback_helper( 9943 ScriptExecutionCallbackHelper callback_helper(
9942 web_view_helper_.WebView()->MainFrame()->MainWorldScriptContext()); 9944 web_view_helper_.WebView()->MainFrameImpl()->MainWorldScriptContext());
9943 web_view_helper_.WebView() 9945 web_view_helper_.WebView()
9944 ->MainFrameImpl() 9946 ->MainFrameImpl()
9945 ->RequestExecuteScriptAndReturnValue(WebScriptSource(WebString(code)), 9947 ->RequestExecuteScriptAndReturnValue(WebScriptSource(WebString(code)),
9946 false, &callback_helper); 9948 false, &callback_helper);
9947 RunPendingTasks(); 9949 RunPendingTasks();
9948 EXPECT_TRUE(callback_helper.DidComplete()); 9950 EXPECT_TRUE(callback_helper.DidComplete());
9949 return callback_helper.StringValue(); 9951 return callback_helper.StringValue();
9950 } 9952 }
9951 9953
9952 FixedLayoutTestWebViewClient client_; 9954 FixedLayoutTestWebViewClient client_;
(...skipping 2228 matching lines...) Expand 10 before | Expand all | Expand 10 after
12181 if (obj->IsText()) { 12183 if (obj->IsText()) {
12182 LayoutText* layout_text = ToLayoutText(obj); 12184 LayoutText* layout_text = ToLayoutText(obj);
12183 text = layout_text->GetText(); 12185 text = layout_text->GetText();
12184 break; 12186 break;
12185 } 12187 }
12186 } 12188 }
12187 EXPECT_EQ("foo alt", text.Utf8()); 12189 EXPECT_EQ("foo alt", text.Utf8());
12188 } 12190 }
12189 12191
12190 } // namespace blink 12192 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698