| Index: chrome/browser/ui/browser_browsertest.cc
|
| diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc
|
| index 639da6e2daafaf56a8a96c6ae14a6c110451f378..257c1d410a98f43737db40841ce44f13907223a1 100644
|
| --- a/chrome/browser/ui/browser_browsertest.cc
|
| +++ b/chrome/browser/ui/browser_browsertest.cc
|
| @@ -624,6 +624,12 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, SadTabCancelsDialogs) {
|
| // beforeunload dialog and the beforeunload hang timer.
|
| contents->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting();
|
|
|
| + // JavaScript onbeforeunload dialogs require a user gesture.
|
| + for (auto* frame :
|
| + browser()->tab_strip_model()->GetActiveWebContents()->GetAllFrames()) {
|
| + frame->ExecuteJavaScriptWithUserGestureForTests(base::string16());
|
| + }
|
| +
|
| // Start a navigation to trigger the beforeunload dialog.
|
| contents->GetMainFrame()->ExecuteJavaScriptForTests(
|
| ASCIIToUTF16("window.location.href = 'about:blank'"));
|
| @@ -713,6 +719,12 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, ReloadThenCancelBeforeUnload) {
|
| // beforeunload dialog and the beforeunload hang timer.
|
| contents->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting();
|
|
|
| + // JavaScript onbeforeunload dialogs require a user gesture.
|
| + for (auto* frame :
|
| + browser()->tab_strip_model()->GetActiveWebContents()->GetAllFrames()) {
|
| + frame->ExecuteJavaScriptWithUserGestureForTests(base::string16());
|
| + }
|
| +
|
| // Navigate to another page, but click cancel in the dialog. Make sure that
|
| // the throbber stops spinning.
|
| chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
|
| @@ -837,6 +849,12 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, SingleBeforeUnloadAfterRedirect) {
|
| // beforeunload dialog and the beforeunload hang timer.
|
| contents->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting();
|
|
|
| + // JavaScript onbeforeunload dialogs require a user gesture.
|
| + for (auto* frame :
|
| + browser()->tab_strip_model()->GetActiveWebContents()->GetAllFrames()) {
|
| + frame->ExecuteJavaScriptWithUserGestureForTests(base::string16());
|
| + }
|
| +
|
| // Navigate to a URL that redirects to another process and approve the
|
| // beforeunload dialog that pops up.
|
| content::WindowedNotificationObserver nav_observer(
|
| @@ -869,6 +887,12 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, CancelBeforeUnloadResetsURL) {
|
| // beforeunload dialog and the beforeunload hang timer.
|
| contents->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting();
|
|
|
| + // JavaScript onbeforeunload dialogs require a user gesture.
|
| + for (auto* frame :
|
| + browser()->tab_strip_model()->GetActiveWebContents()->GetAllFrames()) {
|
| + frame->ExecuteJavaScriptWithUserGestureForTests(base::string16());
|
| + }
|
| +
|
| // Navigate to a page that triggers a cross-site transition.
|
| ASSERT_TRUE(embedded_test_server()->Start());
|
| GURL url2(embedded_test_server()->GetURL("/title1.html"));
|
| @@ -943,6 +967,12 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, BeforeUnloadVsBeforeReload) {
|
| // beforeunload dialog and the beforeunload hang timer.
|
| contents->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting();
|
|
|
| + // JavaScript onbeforeunload dialogs require a user gesture.
|
| + for (auto* frame :
|
| + browser()->tab_strip_model()->GetActiveWebContents()->GetAllFrames()) {
|
| + frame->ExecuteJavaScriptWithUserGestureForTests(base::string16());
|
| + }
|
| +
|
| // Reload the page, and check that we get a "before reload" dialog.
|
| chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
|
| AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog();
|
| @@ -1013,6 +1043,12 @@ IN_PROC_BROWSER_TEST_F(BeforeUnloadAtQuitWithTwoWindows,
|
| GURL url(std::string("data:text/html,") + kBeforeUnloadHTML);
|
| ui_test_utils::NavigateToURL(browser(), url);
|
|
|
| + // JavaScript onbeforeunload dialogs require a user gesture.
|
| + for (auto* frame :
|
| + browser()->tab_strip_model()->GetActiveWebContents()->GetAllFrames()) {
|
| + frame->ExecuteJavaScriptWithUserGestureForTests(base::string16());
|
| + }
|
| +
|
| // Open a second browser window at about:blank.
|
| ui_test_utils::BrowserAddedObserver browser_added_observer;
|
| chrome::NewEmptyWindow(browser()->profile());
|
|
|