| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 521 content::RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT); | 521 content::RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT); |
| 522 base::KillProcess(child_process->GetHandle(), 0, false); | 522 base::KillProcess(child_process->GetHandle(), 0, false); |
| 523 crash_observer.Wait(); | 523 crash_observer.Wait(); |
| 524 EXPECT_FALSE(dialog_queue->HasActiveDialog()); | 524 EXPECT_FALSE(dialog_queue->HasActiveDialog()); |
| 525 | 525 |
| 526 // Make sure subsequent navigations work. | 526 // Make sure subsequent navigations work. |
| 527 GURL url2("http://www.example.com/files/empty.html"); | 527 GURL url2("http://www.example.com/files/empty.html"); |
| 528 ui_test_utils::NavigateToURL(browser(), url2); | 528 ui_test_utils::NavigateToURL(browser(), url2); |
| 529 } | 529 } |
| 530 | 530 |
| 531 // Make sure that dialogs opened by subframes are closed when the process dies. | |
| 532 // See http://crbug.com/366510. | |
| 533 IN_PROC_BROWSER_TEST_F(BrowserTest, SadTabCancelsSubframeDialogs) { | |
| 534 // Navigate to an iframe that opens an alert dialog. | |
| 535 WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents(); | |
| 536 contents->GetMainFrame()->ExecuteJavaScript( | |
| 537 ASCIIToUTF16("window.location.href = 'data:text/html," | |
| 538 "<iframe srcdoc=\"<script>alert(1)</script>\">'")); | |
| 539 AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog(); | |
| 540 EXPECT_TRUE(alert->IsValid()); | |
| 541 AppModalDialogQueue* dialog_queue = AppModalDialogQueue::GetInstance(); | |
| 542 EXPECT_TRUE(dialog_queue->HasActiveDialog()); | |
| 543 | |
| 544 // Crash the renderer process and ensure the dialog is gone. | |
| 545 content::RenderProcessHost* child_process = contents->GetRenderProcessHost(); | |
| 546 content::RenderProcessHostWatcher crash_observer( | |
| 547 child_process, | |
| 548 content::RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT); | |
| 549 base::KillProcess(child_process->GetHandle(), 0, false); | |
| 550 crash_observer.Wait(); | |
| 551 EXPECT_FALSE(dialog_queue->HasActiveDialog()); | |
| 552 | |
| 553 // Make sure subsequent navigations work. | |
| 554 GURL url2("data:text/html,foo"); | |
| 555 ui_test_utils::NavigateToURL(browser(), url2); | |
| 556 } | |
| 557 | |
| 558 // Test for crbug.com/22004. Reloading a page with a before unload handler and | 531 // Test for crbug.com/22004. Reloading a page with a before unload handler and |
| 559 // then canceling the dialog should not leave the throbber spinning. | 532 // then canceling the dialog should not leave the throbber spinning. |
| 560 IN_PROC_BROWSER_TEST_F(BrowserTest, ReloadThenCancelBeforeUnload) { | 533 IN_PROC_BROWSER_TEST_F(BrowserTest, ReloadThenCancelBeforeUnload) { |
| 561 GURL url(std::string("data:text/html,") + kBeforeUnloadHTML); | 534 GURL url(std::string("data:text/html,") + kBeforeUnloadHTML); |
| 562 ui_test_utils::NavigateToURL(browser(), url); | 535 ui_test_utils::NavigateToURL(browser(), url); |
| 563 | 536 |
| 564 // Navigate to another page, but click cancel in the dialog. Make sure that | 537 // Navigate to another page, but click cancel in the dialog. Make sure that |
| 565 // the throbber stops spinning. | 538 // the throbber stops spinning. |
| 566 chrome::Reload(browser(), CURRENT_TAB); | 539 chrome::Reload(browser(), CURRENT_TAB); |
| 567 AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog(); | 540 AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog(); |
| (...skipping 2063 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2631 #endif | 2604 #endif |
| 2632 EXPECT_EQ(exp_commit_size, rwhv_commit_size2); | 2605 EXPECT_EQ(exp_commit_size, rwhv_commit_size2); |
| 2633 EXPECT_EQ(exp_commit_size, wcv_commit_size2); | 2606 EXPECT_EQ(exp_commit_size, wcv_commit_size2); |
| 2634 gfx::Size exp_final_size(initial_wcv_size); | 2607 gfx::Size exp_final_size(initial_wcv_size); |
| 2635 exp_final_size.Enlarge(wcv_resize_insets.width(), | 2608 exp_final_size.Enlarge(wcv_resize_insets.width(), |
| 2636 wcv_resize_insets.height() + height_inset); | 2609 wcv_resize_insets.height() + height_inset); |
| 2637 EXPECT_EQ(exp_final_size, | 2610 EXPECT_EQ(exp_final_size, |
| 2638 web_contents->GetRenderWidgetHostView()->GetViewBounds().size()); | 2611 web_contents->GetRenderWidgetHostView()->GetViewBounds().size()); |
| 2639 EXPECT_EQ(exp_final_size, web_contents->GetView()->GetContainerSize()); | 2612 EXPECT_EQ(exp_final_size, web_contents->GetView()->GetContainerSize()); |
| 2640 } | 2613 } |
| OLD | NEW |