Chromium Code Reviews| Index: chrome/browser/media/media_browsertest.cc |
| diff --git a/chrome/browser/media/media_browsertest.cc b/chrome/browser/media/media_browsertest.cc |
| index c8f3d67f4aab87722cf2859286894bf3d2a92f98..b3dbd805aa13ead7de9317124d3797fd91ddf141 100644 |
| --- a/chrome/browser/media/media_browsertest.cc |
| +++ b/chrome/browser/media/media_browsertest.cc |
| @@ -11,14 +11,18 @@ |
| #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| #include "chrome/common/chrome_paths.h" |
| #include "chrome/test/base/ui_test_utils.h" |
| +#include "content/public/browser/navigation_controller.h" |
| +#include "content/public/browser/navigation_entry.h" |
| +#include "content/public/browser/web_contents.h" |
| #include "content/public/test/browser_test_utils.h" |
| // Common test results. |
| const char MediaBrowserTest::kEnded[] = "ENDED"; |
| const char MediaBrowserTest::kError[] = "ERROR"; |
| const char MediaBrowserTest::kFailed[] = "FAILED"; |
| +const char MediaBrowserTest::kPluginCrashed[] = "PLUGIN_CRASHED"; |
| -MediaBrowserTest::MediaBrowserTest() { |
| +MediaBrowserTest::MediaBrowserTest() : ignore_plugin_crash_(false) { |
| } |
| MediaBrowserTest::~MediaBrowserTest() { |
| @@ -55,6 +59,8 @@ void MediaBrowserTest::RunMediaTestPage( |
| base::string16 MediaBrowserTest::RunTest(const GURL& gurl, |
| const std::string& expected_title) { |
| DVLOG(1) << "Running test URL: " << gurl; |
| + // Observe the web contents for plugin crashes. |
| + Observe(browser()->tab_strip_model()->GetActiveWebContents()); |
| content::TitleWatcher title_watcher( |
| browser()->tab_strip_model()->GetActiveWebContents(), |
| base::ASCIIToUTF16(expected_title)); |
| @@ -68,4 +74,22 @@ void MediaBrowserTest::AddWaitForTitles(content::TitleWatcher* title_watcher) { |
| title_watcher->AlsoWaitForTitle(base::ASCIIToUTF16(kEnded)); |
| title_watcher->AlsoWaitForTitle(base::ASCIIToUTF16(kError)); |
| title_watcher->AlsoWaitForTitle(base::ASCIIToUTF16(kFailed)); |
| + title_watcher->AlsoWaitForTitle(base::ASCIIToUTF16(kPluginCrashed)); |
| } |
| + |
| +void MediaBrowserTest::PluginCrashed(const base::FilePath& plugin_path, |
| + base::ProcessId plugin_pid) { |
| + VLOG(0) << "Plugin crashed: " << plugin_path.value(); |
| + if (ignore_plugin_crash_) |
| + return; |
| + // Update document title to quit TitleWatcher early. |
| + web_contents()->GetController().GetActiveEntry() |
| + ->SetTitle(base::ASCIIToUTF16(kPluginCrashed)); |
| + // Force test to fail. |
| + EXPECT_TRUE(ignore_plugin_crash_) << "Failing test due to plugin crash."; |
|
ddorwin
2014/03/21 17:06:29
You don't actually expect ignore_plugin_crash_ to
shadi1
2014/03/21 18:43:54
Done.
|
| +} |
| + |
| +void MediaBrowserTest::IgnorePluginCrash(bool ignore_plugin_crash) { |
| + ignore_plugin_crash_ = ignore_plugin_crash; |
| +} |
| + |