| 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 <sstream> | 5 #include <sstream> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/file_path.h" | 9 #include "base/file_path.h" |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| (...skipping 980 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 991 // Try to start the download via Javascript and wait for the corresponding | 991 // Try to start the download via Javascript and wait for the corresponding |
| 992 // load stop event. | 992 // load stop event. |
| 993 content::TestNavigationObserver observer( | 993 content::TestNavigationObserver observer( |
| 994 content::Source<content::NavigationController>( | 994 content::Source<content::NavigationController>( |
| 995 &web_contents->GetController()), | 995 &web_contents->GetController()), |
| 996 NULL, | 996 NULL, |
| 997 1); | 997 1); |
| 998 bool download_assempted; | 998 bool download_assempted; |
| 999 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractBool( | 999 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
| 1000 chrome::GetActiveWebContents(browser())->GetRenderViewHost(), | 1000 chrome::GetActiveWebContents(browser())->GetRenderViewHost(), |
| 1001 "", | 1001 L"", |
| 1002 "window.domAutomationController.send(startDownload());", | 1002 L"window.domAutomationController.send(startDownload());", |
| 1003 &download_assempted)); | 1003 &download_assempted)); |
| 1004 ASSERT_TRUE(download_assempted); | 1004 ASSERT_TRUE(download_assempted); |
| 1005 observer.WaitForObservation( | 1005 observer.WaitForObservation( |
| 1006 base::Bind(&content::RunMessageLoop), | 1006 base::Bind(&content::RunMessageLoop), |
| 1007 base::Bind(&MessageLoop::Quit, | 1007 base::Bind(&MessageLoop::Quit, |
| 1008 base::Unretained(MessageLoopForUI::current()))); | 1008 base::Unretained(MessageLoopForUI::current()))); |
| 1009 | 1009 |
| 1010 // Check that we did not download the file. | 1010 // Check that we did not download the file. |
| 1011 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1011 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1012 FilePath file_path(DestinationFile(browser(), file)); | 1012 FilePath file_path(DestinationFile(browser(), file)); |
| (...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1420 GURL extensions_url(chrome::kChromeUIExtensionsFrameURL); | 1420 GURL extensions_url(chrome::kChromeUIExtensionsFrameURL); |
| 1421 | 1421 |
| 1422 ui_test_utils::NavigateToURL(browser(), flags_url); | 1422 ui_test_utils::NavigateToURL(browser(), flags_url); |
| 1423 DownloadAndWait(browser(), download_url); | 1423 DownloadAndWait(browser(), download_url); |
| 1424 ui_test_utils::NavigateToURL(browser(), extensions_url); | 1424 ui_test_utils::NavigateToURL(browser(), extensions_url); |
| 1425 WebContents* contents = chrome::GetActiveWebContents(browser()); | 1425 WebContents* contents = chrome::GetActiveWebContents(browser()); |
| 1426 ASSERT_TRUE(contents); | 1426 ASSERT_TRUE(contents); |
| 1427 bool webui_responded = false; | 1427 bool webui_responded = false; |
| 1428 EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool( | 1428 EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
| 1429 contents->GetRenderViewHost(), | 1429 contents->GetRenderViewHost(), |
| 1430 "", | 1430 L"", |
| 1431 "window.domAutomationController.send(window.webui_responded_);", | 1431 L"window.domAutomationController.send(window.webui_responded_);", |
| 1432 &webui_responded)); | 1432 &webui_responded)); |
| 1433 EXPECT_TRUE(webui_responded); | 1433 EXPECT_TRUE(webui_responded); |
| 1434 } | 1434 } |
| 1435 | 1435 |
| 1436 // Test for crbug.com/12745. This tests that if a download is initiated from | 1436 // Test for crbug.com/12745. This tests that if a download is initiated from |
| 1437 // a chrome:// page that has registered and onunload handler, the browser | 1437 // a chrome:// page that has registered and onunload handler, the browser |
| 1438 // will be able to close. | 1438 // will be able to close. |
| 1439 IN_PROC_BROWSER_TEST_F(DownloadTest, BrowserCloseAfterDownload) { | 1439 IN_PROC_BROWSER_TEST_F(DownloadTest, BrowserCloseAfterDownload) { |
| 1440 GURL downloads_url(chrome::kChromeUIFlagsURL); | 1440 GURL downloads_url(chrome::kChromeUIFlagsURL); |
| 1441 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); | 1441 FilePath file(FILE_PATH_LITERAL("download-test1.lib")); |
| 1442 GURL download_url(URLRequestMockHTTPJob::GetMockUrl(file)); | 1442 GURL download_url(URLRequestMockHTTPJob::GetMockUrl(file)); |
| 1443 | 1443 |
| 1444 ui_test_utils::NavigateToURL(browser(), downloads_url); | 1444 ui_test_utils::NavigateToURL(browser(), downloads_url); |
| 1445 WebContents* contents = chrome::GetActiveWebContents(browser()); | 1445 WebContents* contents = chrome::GetActiveWebContents(browser()); |
| 1446 ASSERT_TRUE(contents); | 1446 ASSERT_TRUE(contents); |
| 1447 bool result = false; | 1447 bool result = false; |
| 1448 EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool( | 1448 EXPECT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
| 1449 contents->GetRenderViewHost(), | 1449 contents->GetRenderViewHost(), |
| 1450 "", | 1450 L"", |
| 1451 "window.onunload = function() { var do_nothing = 0; }; " | 1451 L"window.onunload = function() { var do_nothing = 0; }; " |
| 1452 "window.domAutomationController.send(true);", | 1452 L"window.domAutomationController.send(true);", |
| 1453 &result)); | 1453 &result)); |
| 1454 EXPECT_TRUE(result); | 1454 EXPECT_TRUE(result); |
| 1455 | 1455 |
| 1456 DownloadAndWait(browser(), download_url); | 1456 DownloadAndWait(browser(), download_url); |
| 1457 | 1457 |
| 1458 content::WindowedNotificationObserver signal( | 1458 content::WindowedNotificationObserver signal( |
| 1459 chrome::NOTIFICATION_BROWSER_CLOSED, | 1459 chrome::NOTIFICATION_BROWSER_CLOSED, |
| 1460 content::Source<Browser>(browser())); | 1460 content::Source<Browser>(browser())); |
| 1461 chrome::CloseWindow(browser()); | 1461 chrome::CloseWindow(browser()); |
| 1462 signal.Wait(); | 1462 signal.Wait(); |
| (...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2228 WebContents* web_contents = chrome::GetActiveWebContents(browser()); | 2228 WebContents* web_contents = chrome::GetActiveWebContents(browser()); |
| 2229 scoped_ptr<DownloadUrlParameters> params( | 2229 scoped_ptr<DownloadUrlParameters> params( |
| 2230 DownloadUrlParameters::FromWebContents(web_contents, url)); | 2230 DownloadUrlParameters::FromWebContents(web_contents, url)); |
| 2231 params->set_callback(base::Bind(&SetHiddenDownloadCallback)); | 2231 params->set_callback(base::Bind(&SetHiddenDownloadCallback)); |
| 2232 download_manager->DownloadUrl(params.Pass()); | 2232 download_manager->DownloadUrl(params.Pass()); |
| 2233 observer->WaitForFinished(); | 2233 observer->WaitForFinished(); |
| 2234 | 2234 |
| 2235 // Verify that download shelf is not shown. | 2235 // Verify that download shelf is not shown. |
| 2236 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); | 2236 EXPECT_FALSE(browser()->window()->IsDownloadShelfVisible()); |
| 2237 } | 2237 } |
| OLD | NEW |