| 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/prefs/pref_service.h" | 6 #include "base/prefs/pref_service.h" |
| 7 #include "base/test/test_timeouts.h" | 7 #include "base/test/test_timeouts.h" |
| 8 #include "base/threading/platform_thread.h" | 8 #include "base/threading/platform_thread.h" |
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "chrome/app/chrome_command_ids.h" | 10 #include "chrome/app/chrome_command_ids.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 #include "chrome/browser/extensions/shell_window_registry.h" | 21 #include "chrome/browser/extensions/shell_window_registry.h" |
| 22 #include "chrome/browser/prefs/pref_registry_syncable.h" | 22 #include "chrome/browser/prefs/pref_registry_syncable.h" |
| 23 #include "chrome/browser/tab_contents/render_view_context_menu.h" | 23 #include "chrome/browser/tab_contents/render_view_context_menu.h" |
| 24 #include "chrome/browser/ui/browser.h" | 24 #include "chrome/browser/ui/browser.h" |
| 25 #include "chrome/browser/ui/extensions/application_launch.h" | 25 #include "chrome/browser/ui/extensions/application_launch.h" |
| 26 #include "chrome/browser/ui/extensions/native_app_window.h" | 26 #include "chrome/browser/ui/extensions/native_app_window.h" |
| 27 #include "chrome/browser/ui/extensions/shell_window.h" | 27 #include "chrome/browser/ui/extensions/shell_window.h" |
| 28 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 28 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 29 #include "chrome/browser/ui/web_contents_modal_dialog_manager.h" | 29 #include "chrome/browser/ui/web_contents_modal_dialog_manager.h" |
| 30 #include "chrome/common/chrome_notification_types.h" | 30 #include "chrome/common/chrome_notification_types.h" |
| 31 #include "chrome/common/pref_names.h" | |
| 32 #include "chrome/common/url_constants.h" | 31 #include "chrome/common/url_constants.h" |
| 33 #include "chrome/test/base/ui_test_utils.h" | 32 #include "chrome/test/base/ui_test_utils.h" |
| 34 #include "content/public/browser/devtools_agent_host.h" | 33 #include "content/public/browser/devtools_agent_host.h" |
| 35 #include "content/public/browser/render_process_host.h" | 34 #include "content/public/browser/render_process_host.h" |
| 36 #include "content/public/browser/render_widget_host_view.h" | 35 #include "content/public/browser/render_widget_host_view.h" |
| 37 #include "content/public/browser/web_contents_view.h" | 36 #include "content/public/browser/web_contents_view.h" |
| 38 #include "content/public/test/test_utils.h" | 37 #include "content/public/test/test_utils.h" |
| 39 #include "googleurl/src/gurl.h" | 38 #include "googleurl/src/gurl.h" |
| 40 | 39 |
| 41 using content::WebContents; | 40 using content::WebContents; |
| (...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 680 | 679 |
| 681 // Tests that an app calling chrome.runtime.reload will reload the app and | 680 // Tests that an app calling chrome.runtime.reload will reload the app and |
| 682 // relaunch it if it was running. | 681 // relaunch it if it was running. |
| 683 IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, ReloadRelaunches) { | 682 IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, ReloadRelaunches) { |
| 684 ExtensionTestMessageListener launched_listener("Launched", true); | 683 ExtensionTestMessageListener launched_listener("Launched", true); |
| 685 const Extension* extension = LoadAndLaunchPlatformApp("reload"); | 684 const Extension* extension = LoadAndLaunchPlatformApp("reload"); |
| 686 ASSERT_TRUE(extension); | 685 ASSERT_TRUE(extension); |
| 687 ASSERT_TRUE(launched_listener.WaitUntilSatisfied()); | 686 ASSERT_TRUE(launched_listener.WaitUntilSatisfied()); |
| 688 ASSERT_TRUE(GetFirstShellWindow()); | 687 ASSERT_TRUE(GetFirstShellWindow()); |
| 689 | 688 |
| 690 // Now tell the app to reload itself. | 689 // Now tell the app to reload itself |
| 691 ExtensionTestMessageListener launched_listener2("Launched", false); | 690 ExtensionTestMessageListener launched_listener2("Launched", false); |
| 692 launched_listener.Reply("reload"); | 691 launched_listener.Reply("reload"); |
| 693 ASSERT_TRUE(launched_listener2.WaitUntilSatisfied()); | 692 ASSERT_TRUE(launched_listener2.WaitUntilSatisfied()); |
| 694 ASSERT_TRUE(GetFirstShellWindow()); | 693 ASSERT_TRUE(GetFirstShellWindow()); |
| 695 } | 694 } |
| 696 | 695 |
| 697 namespace { | 696 namespace { |
| 698 | 697 |
| 699 // Simple observer to check for NOTIFICATION_EXTENSION_INSTALLED events to | 698 // Simple observer to check for NOTIFICATION_EXTENSION_INSTALLED events to |
| 700 // ensure installation does or does not occur in certain scenarios. | 699 // ensure installation does or does not occur in certain scenarios. |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 845 #else | 844 #else |
| 846 #define MAYBE_WebContentsHasFocus WebContentsHasFocus | 845 #define MAYBE_WebContentsHasFocus WebContentsHasFocus |
| 847 #endif | 846 #endif |
| 848 IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, MAYBE_WebContentsHasFocus) { | 847 IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, MAYBE_WebContentsHasFocus) { |
| 849 const Extension* extension = LoadAndLaunchPlatformApp("minimal"); | 848 const Extension* extension = LoadAndLaunchPlatformApp("minimal"); |
| 850 ShellWindow* window = CreateShellWindow(extension); | 849 ShellWindow* window = CreateShellWindow(extension); |
| 851 EXPECT_TRUE(window->web_contents()->GetRenderWidgetHostView()->HasFocus()); | 850 EXPECT_TRUE(window->web_contents()->GetRenderWidgetHostView()->HasFocus()); |
| 852 CloseShellWindow(window); | 851 CloseShellWindow(window); |
| 853 } | 852 } |
| 854 | 853 |
| 855 IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, DontCrashWhenReloading) { | |
| 856 // Regression test for http://crbug.com/174250 | |
| 857 browser()->profile()->GetPrefs()->SetBoolean( | |
| 858 prefs::kExtensionsUIDeveloperMode, true); | |
| 859 ui_test_utils::NavigateToURL(browser(), GURL("chrome://extensions")); | |
| 860 ExtensionTestMessageListener launched_listener("Launched", true); | |
| 861 const Extension* extension = LoadAndLaunchPlatformApp("reload"); | |
| 862 ASSERT_TRUE(extension); | |
| 863 ASSERT_TRUE(launched_listener.WaitUntilSatisfied()); | |
| 864 ASSERT_TRUE(GetFirstShellWindow()); | |
| 865 | |
| 866 // Now tell the app to reload itself. | |
| 867 ExtensionTestMessageListener launched_listener2("Launched", false); | |
| 868 launched_listener.Reply("reload"); | |
| 869 ASSERT_TRUE(launched_listener2.WaitUntilSatisfied()); | |
| 870 ASSERT_TRUE(GetFirstShellWindow()); | |
| 871 } | |
| 872 | |
| 873 } // namespace extensions | 854 } // namespace extensions |
| OLD | NEW |