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 a4ade53d2092cc624abebfd4a449b1d8036e8d46..44f615afecdb4d819f41889cfb051bf532c218e4 100644 |
--- a/chrome/browser/extensions/platform_app_browsertest.cc |
+++ b/chrome/browser/extensions/platform_app_browsertest.cc |
@@ -8,15 +8,15 @@ |
#include "chrome/browser/automation/automation_util.h" |
#include "chrome/browser/extensions/extension_apitest.h" |
#include "chrome/browser/extensions/extension_browsertest.h" |
-#include "chrome/browser/extensions/extension_host.h" |
#include "chrome/browser/extensions/extension_service.h" |
#include "chrome/browser/extensions/extension_test_message_listener.h" |
+#include "chrome/browser/extensions/shell_window_registry.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/tab_contents/render_view_context_menu.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_list.h" |
+#include "chrome/browser/ui/extensions/shell_window.h" |
#include "chrome/common/chrome_switches.h" |
-#include "chrome/common/chrome_view_type.h" |
#include "chrome/common/extensions/extension_constants.h" |
#include "chrome/test/base/ui_test_utils.h" |
#include "content/public/browser/web_contents.h" |
@@ -57,7 +57,6 @@ class PlatformAppBrowserTest : public ExtensionApiTest { |
protected: |
void LoadAndLaunchPlatformApp(const char* name) { |
- size_t platform_app_count = GetPlatformAppCount(); |
ui_test_utils::WindowedNotificationObserver app_loaded_observer( |
content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME, |
content::NotificationService::AllSources()); |
@@ -78,41 +77,19 @@ class PlatformAppBrowserTest : public ExtensionApiTest { |
NEW_WINDOW); |
app_loaded_observer.Wait(); |
- |
- // Now we have a new platform app running. |
- EXPECT_EQ(platform_app_count + 1, GetPlatformAppCount()); |
- } |
- |
- // Gets the number of platform apps extension hosts that are running. |
- size_t GetPlatformAppCount() { |
- int count = 0; |
- ExtensionProcessManager* process_manager = |
- browser()->profile()->GetExtensionProcessManager(); |
- ExtensionProcessManager::const_iterator iter; |
- ExtensionProcessManager::ExtensionHostSet platform_app_hosts = |
- process_manager->platform_app_hosts(); |
- for (iter = platform_app_hosts.begin(); iter != platform_app_hosts.end(); |
- ++iter) { |
- if ((*iter)->extension()) |
- count++; |
- } |
- |
- return count; |
} |
- // Gets the WebContents associated with the ExtensionHost of the first |
- // platform app shell window that is found (most tests only deal with one |
- // platform app window, so this is good enough). |
- WebContents* GetFirstPlatformAppShellWindowWebContents() { |
- ExtensionProcessManager* process_manager = |
- browser()->profile()->GetExtensionProcessManager(); |
- ExtensionProcessManager::const_iterator iter; |
- ExtensionProcessManager::ExtensionHostSet platform_app_hosts = |
- process_manager->platform_app_hosts(); |
- for (iter = platform_app_hosts.begin(); iter != platform_app_hosts.end(); |
- ++iter) { |
- if ((*iter)->extension_host_type() == chrome::VIEW_TYPE_APP_SHELL) |
- return (*iter)->host_contents(); |
+ // Gets the WebContents associated with the first shell window that is found |
+ // (most tests only deal with one platform app window, so this is good |
+ // enough). |
+ WebContents* GetFirstShellWindowWebContents() { |
+ ShellWindowRegistry* app_registry = |
+ ShellWindowRegistry::Get(browser()->profile()); |
+ ShellWindowRegistry::const_iterator iter; |
+ ShellWindowRegistry::ShellWindowSet shell_windows = |
+ app_registry->shell_windows(); |
+ for (iter = shell_windows.begin(); iter != shell_windows.end(); ++iter) { |
+ return (*iter)->web_contents(); |
} |
return NULL; |
@@ -132,13 +109,15 @@ IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, EmptyContextMenu) { |
// The empty app doesn't add any context menu items, so its menu should |
// only include the developer tools. |
- WebContents* web_contents = GetFirstPlatformAppShellWindowWebContents(); |
+ WebContents* web_contents = GetFirstShellWindowWebContents(); |
ASSERT_TRUE(web_contents); |
WebKit::WebContextMenuData data; |
content::ContextMenuParams params(data); |
PlatformAppContextMenu* menu = new PlatformAppContextMenu(web_contents, |
params); |
menu->Init(); |
+ // TODO(benwells): Remove the constant below. Instead of checking the |
+ // number of menu items check certain item's absense and presence. |
// 3 including separator |
ASSERT_EQ(3, menu->menu_model().GetItemCount()); |
} |
@@ -153,13 +132,15 @@ IN_PROC_BROWSER_TEST_F(PlatformAppBrowserTest, AppWithContextMenu) { |
// The context_menu app has one context menu item. This, along with a |
// separator and the developer tools, is all that should be in the menu. |
- WebContents* web_contents = GetFirstPlatformAppShellWindowWebContents(); |
+ WebContents* web_contents = GetFirstShellWindowWebContents(); |
ASSERT_TRUE(web_contents); |
WebKit::WebContextMenuData data; |
content::ContextMenuParams params(data); |
PlatformAppContextMenu* menu = new PlatformAppContextMenu(web_contents, |
params); |
menu->Init(); |
+ // TODO(benwells): Remove the constant below. Instead of checking the |
+ // number of menu items check certain item's absense and presence. |
ASSERT_EQ(4, menu->menu_model().GetItemCount()); |
} |