Chromium Code Reviews| Index: chrome/browser/extensions/platform_app_browsertest.cc |
| diff --git a/chrome/browser/extensions/platform_app_browsertest.cc b/chrome/browser/extensions/platform_app_browsertest.cc |
| index 55c305c7d5f16c185bcdebb94cc19fcbf9d7ec4e..c3532278da7c19a0f483848e6f15d0eefd39da90 100644 |
| --- a/chrome/browser/extensions/platform_app_browsertest.cc |
| +++ b/chrome/browser/extensions/platform_app_browsertest.cc |
| @@ -8,6 +8,8 @@ |
| #include "base/utf_string_conversions.h" |
| #include "chrome/app/chrome_command_ids.h" |
| #include "chrome/browser/automation/automation_util.h" |
| +#include "chrome/browser/debugger/devtools_window.h" |
| +#include "content/public/browser/devtools_agent_host_registry.h" |
| #include "chrome/browser/tab_contents/render_view_context_menu.h" |
| #include "chrome/browser/extensions/app_restore_service_factory.h" |
| #include "chrome/browser/extensions/app_restore_service.h" |
| @@ -23,6 +25,7 @@ |
| #include "chrome/browser/ui/browser_tabstrip.h" |
| #include "chrome/browser/ui/extensions/application_launch.h" |
| #include "chrome/browser/ui/extensions/shell_window.h" |
| +#include "chrome/browser/ui/tab_contents/tab_contents.h" |
| #include "chrome/common/chrome_notification_types.h" |
| #include "chrome/common/url_constants.h" |
| #include "chrome/test/base/ui_test_utils.h" |
| @@ -703,4 +706,44 @@ IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, RunningAppsAreRecorded) { |
| restart_listener.WaitUntilSatisfied(); |
| } |
| +// Tests that relaunching an app with devtools open reopens devtools. |
| +IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, DevToolsOpenedWithReload) { |
| + using content::DevToolsAgentHostRegistry; |
| + |
| + ExtensionTestMessageListener launched_listener("Launched", false); |
| + const Extension* extension = LoadAndLaunchPlatformApp("minimal_id"); |
| + ASSERT_TRUE(extension); |
| + ASSERT_TRUE(launched_listener.WaitUntilSatisfied()); |
| + ShellWindow* window = GetFirstShellWindow(); |
| + ASSERT_TRUE(window); |
| + content::RenderViewHost* rvh = window->web_contents()->GetRenderViewHost(); |
| + ASSERT_TRUE(rvh); |
| + ASSERT_FALSE(DevToolsAgentHostRegistry::HasDevToolsAgentHost(rvh)); |
| + DevToolsWindow* devtools_window = DevToolsWindow::OpenDevToolsWindow(rvh); |
| + content::WindowedNotificationObserver loaded_observer( |
| + content::NOTIFICATION_LOAD_STOP, |
| + content::Source<content::NavigationController>( |
| + &devtools_window->tab_contents() |
| + ->web_contents()->GetController())); |
| + |
| + loaded_observer.Wait(); |
| + ASSERT_TRUE(DevToolsAgentHostRegistry::HasDevToolsAgentHost(rvh)); |
| + |
| + CloseShellWindow(window); |
|
tapted
2012/10/23 10:16:45
This line triggers http://crbug.com/157097 when (W
benwells
2012/10/23 10:27:14
#if NDEBUG sg, with a comment linking to the bug.
tapted
2012/10/23 23:41:15
Done.
|
| + ASSERT_FALSE(GetFirstShellWindow()); // No ShellWindows. |
| + |
| + content::WindowedNotificationObserver app_loaded_observer( |
| + content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME, |
| + content::NotificationService::AllSources()); |
| + application_launch::OpenApplication(application_launch::LaunchParams( |
| + browser()->profile(), extension, extension_misc::LAUNCH_NONE, |
| + NEW_WINDOW)); |
| + app_loaded_observer.Wait(); |
| + window = GetFirstShellWindow(); |
| + ASSERT_TRUE(window); |
| + rvh = window->web_contents()->GetRenderViewHost(); |
| + ASSERT_TRUE(rvh); |
| + ASSERT_TRUE(DevToolsAgentHostRegistry::HasDevToolsAgentHost(rvh)); |
| +} |
| + |
| } // namespace extensions |